「特集:人気言語でのデータ処理の比較 C#/Scala/Python/Ruby/F#でデータ処理はどう違うのか?」にともなう反応など
「特集:人気言語でのデータ処理の比較 C#/Scala/Python/Ruby/F#でデータ処理はどう違うのか?」を公開しました。http://bit.ly/o6XEmV
2011-07-22 16:26:14あれ、C++がない。 RT @ufcpp: RT @devchu: 「特集:人気言語でのデータ処理の比較 C#/Scala/Python/Ruby/F#でデータ処理はどう違うのか?」を公開しました。http://bit.ly/o6XEmV
2011-07-22 16:30:38なぜ Scala の groupBy が書いてないし http://t.co/1z6j59F あと、withFilterについて書いてないから、厳密にいうと嘘が・・・
2011-07-22 16:34:45Scalaの「パイプライン化」がトレイトって、どういう意味だろう? http://www.atmarkit.co.jp/fdotnet/chushin/comparedataproc_01/comparedataproc_01_01.html
2011-07-22 16:38:27@bleis 基本的に、欲しいのはインターフェイスに対するアルゴリズムの後置きメソッド記法になるはずです。トレイト=実装を持てる(メンバー関数を持てる)インターフェイスという扱いです。
2011-07-22 16:39:51@ufcpp http://t.co/1z6j59F ScalaにもgroupBy っていうメソッドあります。あと、C# のAggregateにあたる集計関数はfoldLeftではないかと。あとfor式の展開のルールが厳密にいうとwithFilterっていうのがあって・・・
2011-07-22 16:40:53@ufcpp あと集計ですけど、AggregateとscanLeftとreduceって、かなりバラバラな気がします。Aggregate/foldLeft/foldの方がいいんじゃ?
2011-07-22 16:41:56@bleis まあ、脚注に入ってますけども、トレイト+implicitですねぇ(まあ、個人的にimplicit conversionはクソ仕様だと思っていますが)。LINQに直接対応するのはIterableのmapとかですし。
2011-07-22 16:44:13@ufcpp トレイトであることは必須ではなくて、クラスでもできますよね。なので、クラス/トレイト + implicit conversionかなー
2011-07-22 16:45:24@firecrest_rs Javaは書きようがないのです。機能不足過ぎて。利用者数No1の言語を外すなんて、理由もなくしません。
2011-07-22 16:46:47scala> (1 to 10 ).scanLeft(0){_ + _} res15: scala.collection.immutable.IndexedSeq[Int] = Vector(0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55)
2011-07-22 16:47:51@bleis まあ、それはC# の拡張メソッドでも同じなんですが<クラスでもできる。が、LINQなんかを見ての通り、一番ありがたいのはインターフェイスに対する実装の追加という部分になります。機能ベースでなく、目的ベースで言うと。
2011-07-22 16:47:58@ufcpp んー、そこらへんはScalaだと、implicit conversion用のメソッドを用意するので、インターフェイス(トレイト)に対する実装の追加というのはimplicit conversion用のメソッドの引数側の話で、戻り値の型側の話ではないのでは?
2011-07-22 16:49:39http://bit.ly/nmrsgl 釈明しておくと、Javaはわざとハブったんじゃなくて、書きようがなかった。機能が足りなくて。C++は「原理的には書ける」になりそうだったので逃げた。某氏に「C++版はよろしく!」ってネタ振って逃げる。
2011-07-22 16:50:46@pasela Javaの場合、toXxxは変換を行うのに対して、asXxxはビューを返す、という違いが。何の話かは知らないけど
2011-07-22 16:51:09あれ?よく見たら集計がAggregate/scanLeft/reduce/reduceになってるけど、scanLeftはなんかちがうような。
2011-07-22 16:51:44ScalaとかF#にイテレータ・ブロックとかジェネレータ的なものがないのは、イミュータブルなコレクションが手厚いから不要という説
2011-07-22 16:52:02確かにJavaで書くのは難しいすね。「書くのが不可能ではない」になりそうです。もしくはライブラリを駆使 RT @ufcpp: http://bit.ly/nmrsgl 釈明しておくと、Javaはわざとハブったんじゃなくて、書きようがなかった。機能が足りなくて。C++は「原理的には
2011-07-22 16:52:21そして、Rubyにも flat_map あったような http://t.co/1z6j59F pythonはしらぬ(´・ω・`)
2011-07-22 16:53:37@bleis 機能としてはインターフェイスが実装を持つ(トレイト)というのと、実装を後から追加する(暗黙型変換)というのがありますけども。どっちかというとそういう機能的な話ではなくて、データ処理、パイプライン型のコーディングという目的で見てるので。
2011-07-22 16:54:12