C#でMapReduceのフレームワーク?を作ってみた

C#

3年ぶりに、MapReduceシリーズの第6弾。第5弾まではこちら → Scala / Erlang / Go / F# / RubyC# 4.0で作ってみたが、とてもシンプルになった。LINQとTPL(タスク並列ライブラリ)のおかげか。

事前条件チェックの多い処理をスマートに書くには

事前条件チェックの多い処理とは、次の擬似コードのようなものだと思ってもらえれば良い。 function process(...) { if (事前条件1) return "Err1" if (事前条件2) return "Err2" if (事前条件3) return "Err3" // ここから本処理 // : // : return "OK" }Sc…

マップに対するパターンマッチ

マップに対するパターンマッチに使える extractor が標準では用意されていないようだし、ぐぐってみてもそれっぽい例が見つからないので、書いてみた。

Scala を複数バージョンインストールしてある環境での NoClassDefFoundError

Scala 2.8.0.final と 2.9.0.1 をインストールしてあるWindowsマシンで、2.8.0.final の方を使ってスクリプトを実行しようとしたら NoClassDefFoundError が出た。

RubyでMapReduceのフレームワークを作ってみた

MapReduceシリーズの第5弾。第4弾まではこちら → Scala / Erlang / Go / F#The Omnibus Concurrency Libraryというのを使ってみた。Scalaのアクターと同じ感じ。

F#でMapReduceのフレームワークを作ってみた

F#

MapReduceシリーズの第4弾。第3弾まではこちら → Scala / Erlang / Goフレームワークのソースは、これまでで一番短くなった。ポイントとして、ScalaのActorに似たMailboxProcessorというクラスを使っている。これについては、こちらの記事を参考にさせて頂い…

Go言語でMapReduceのフレームワークを作ってみた

Go

前回のErlang、前々回のScalaに続き、Goでも作ってみた。Goのチャネルは、ScalaのアクターやErlangのプロセスが持っているメールボックスの仕組みと異なり、明示的に作る必要がある(make関数を使う)。また、未受信のメッセージをいくつまで溜めておけるよ…

ErlangでMapReduceのフレームワークを作ってみた

昨日の記事でやった内容のErlangバージョン。

ScalaのActorを使ってMapReduceのフレームワークを作ってみた

Actorを使う練習として、簡単なMapReduceのフレームワークを作ってみた。練習用なので、シングルプロセスのみ。また、Sort処理は省いてある。

Rubyでのインデントは何桁にするのが良いか

Rubyではインデントを2桁(半角スペース2つ)にするのが一般的なようだが、どうも「少なすぎない?」というのが前々から気になっていた。ということで、実験。

Google で画像を検索してURLのリストを出力する

import java.net.HttpURLConnection import java.net.URL import java.net.URLEncoder import scala.io.Source val paramMap = Map( "q" -> "富士山", // 検索する語 "tbs" -> "itp:photo,isz:lt,islt:10mp", // "islt:10mp" は "10メガピクセル以上" を表す…

いろいろなデジカメで撮ったままのサンプル画像を集める

各社・各機種のデジカメで撮った写真を資料として集める必要があって、それ用のスクリプトを書いてみた。それが下のもの。デジカメ Watchの「新製品レビュー」のバックナンバーを辿って、画像へのリンクを抽出する。

CSVを読み書きするライブラリ「opencsv」のラッパークラス

opencsv の CSVReader をラップして、CSVの1レコードずつ返す Iterator クラス。 import java.io._ import au.com.bytecode.opencsv.CSVReader class ScalaCSVReader(reader: Reader) extends Iterator[Array[String]] with Closeable { require(reader != n…

プログラミング言語の比較

プログラミング言語の比較サイトを作っています。 http://programming-languages.appspot.com/comparison/