2014-05-06 C#でMapReduceのフレームワーク?を作ってみた C# 3年ぶりに、MapReduceシリーズの第6弾。第5弾まではこちら → Scala / Erlang / Go / F# / RubyC# 4.0で作ってみたが、とてもシンプルになった。LINQとTPL(タスク並列ライブラリ)のおかげか。 続きを読む
2012-06-21 事前条件チェックの多い処理をスマートに書くには Scala 事前条件チェックの多い処理とは、次の擬似コードのようなものだと思ってもらえれば良い。 function process(...) { if (事前条件1) return "Err1" if (事前条件2) return "Err2" if (事前条件3) return "Err3" // ここから本処理 // : // : return "OK" }Scala では、例えば次のようなものである。 Either に関しては、Right が条件成立、Left が条件不成立を表すものとして使っている。 続きを読む
2012-06-09 マップに対するパターンマッチ Scala マップに対するパターンマッチに使える extractor が標準では用意されていないようだし、ぐぐってみてもそれっぽい例が見つからないので、書いてみた。 続きを読む
2011-06-02 Scala を複数バージョンインストールしてある環境での NoClassDefFoundError Scala Scala 2.8.0.final と 2.9.0.1 をインストールしてあるWindowsマシンで、2.8.0.final の方を使ってスクリプトを実行しようとしたら NoClassDefFoundError が出た。 続きを読む
2011-01-29 RubyでMapReduceのフレームワークを作ってみた Ruby MapReduceシリーズの第5弾。第4弾まではこちら → Scala / Erlang / Go / F#The Omnibus Concurrency Libraryというのを使ってみた。Scalaのアクターと同じ感じ。 続きを読む
2011-01-24 F#でMapReduceのフレームワークを作ってみた F# MapReduceシリーズの第4弾。第3弾まではこちら → Scala / Erlang / Goフレームワークのソースは、これまでで一番短くなった。ポイントとして、ScalaのActorに似たMailboxProcessorというクラスを使っている。これについては、こちらの記事を参考にさせて頂いた。 続きを読む
2011-01-22 Go言語でMapReduceのフレームワークを作ってみた Go 前回のErlang、前々回のScalaに続き、Goでも作ってみた。Goのチャネルは、ScalaのアクターやErlangのプロセスが持っているメールボックスの仕組みと異なり、明示的に作る必要がある(make関数を使う)。また、未受信のメッセージをいくつまで溜めておけるようにするかを指定しなければならない。下記では、その数を1000にしている。 続きを読む