2010-04-01から1ヶ月間の記事一覧

Scala における列挙(Enumeration)

Scala の列挙サポート Scala では列挙を言語の構文としてではなく、scala.Enumerationというライブラリとして提供している。Color の列挙を定義するには以下のようにする。 package etc9 object Color extends Enumeration { val Red, Green, Blue = Value }…

Scalaのためのシンプルなビルドツール SBT

SBTとは SBT(simple-build-tool)はScalaのためのシンプルなビルドツールです。google code でホストされています。 http://code.google.com/p/simple-build-tool/今回はWindows環境にてSBTを使用してみます。現在の最新版である sbt-launch-0.7.3.jar を使用…

Scala の JDBC ライブラリ scala.dbc について

scala.dbc は Scala に添付のデータベース操作用のライブラリです。ORM ではなくて、JDBCのラッパです。メンテナンスもあまりアクティブでないため、そのうち無くなると思いますが、SQL を DSL のようにタイプセーフで書けるので勉強になるかも・一応 H2 を…

関数は Function トレイトである

第一級関数 Scala において、関数は第一級関数 first-class function です。第一級関数なので、関数を値の様にして扱うことができます。例えば以下のように関数を f という値として定義できます。 val f:Int=>Int = x=>x*x println(f(3)) 結果は 9 が出力さ…

名前渡し Call-by-name にて引数のコード実行タイミングを制御する

Java で以下のコードにてgreeting()を呼び出すと、 public String hello() { return "HELLO"; } public void print(String s) { System.out.println(s); } public void greeting() { print(hello()); } 最初に hello() メソッドが呼ばれ、その結果の HELLO …

コレクションと関数による関数型プログラミングの真価

入力をどう変化させるか? 命令型のプログラミングでは、制御(命令)フローを考え、そのフローにてデータをどのように変化させるかを考えますが、Scala では入力を出力に変換する という考え方にてロジックを組み立てていきます。 奇数を抽出する場合、命令…

Selenium-RC の利用

Selenium-RCとは JUnit や TestNG などから Selenium によるインテグレーションテストを実行できる。本家は以下。 http://seleniumhq.org/ Selenium Server Selenium Server はテストコードなどから Selenium コマンドを受け、コマンドを実行し、結果を返却…

SeleniumServer 起動サンプル

SeleniumServer 起動のサンプル。裏で起動してたらシャットダウンして新たに起動。 package etc9; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; i…

JDK7 の WatchService を試す

WatchService とは JDK7でクロージャがやっぱり追加されることになったのはいいのですが、リリース時期が延びるそうで、NIO2を待たなければならないのは残念。ベータ版でNIO2を試してみよう。 WatchService とはファイルシステムに対する変更を監視できるサ…