Scala

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

事前条件チェックの多い処理とは、次の擬似コードのようなものだと思ってもらえれば良い。 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 が出た。

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

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

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…