2011-07-01から1ヶ月間の記事一覧
blog1.mammb.com からの続きです。 ラムダ式 まぁ、無名関数です はい。 引数を二乗する関数 square は以下のように定義できます。 square :: Num a => a -> a square x = x * x この関数には square という名前が付いていますが、名前を付けずに関数を定義…
blog1.mammb.com からの続きです。 条件式 Haskell の if 文は、多くの関数型言語と同じく式です。つまり、なんらかの値を返します。そして else 部がかならず必要です。 整数の絶対値を返却する関数は、条件式を使って以下のように定義できます。 abs :: In…
blog1.mammb.comの続きです。 パターンマッチ 関数型言語では一般的なパターンマッチが、当然ながら Haskell にもあります。 パターンマッチは、パターン式を並べて記述します。パターンは上から最初にマッチしたものが利用されます。 リテラルパターン Bool…
blog1.mammb.com の続きです。 関数の定義 2 つの数字を加算する add 関数を定義してみます。 add x y = x + y 実行すると、以下のように 2 つの数字を加算した結果が得られていることが分かります。 Main> add 2 3 5 この関数の型について調べてみましょう…
Haskell とは 純粋関数型のプログラミング言語 変数を扱わないため状態という概念がない 非正格の遅延関数言語 強力な型システム 名前は数学者であり論理学者であるハスケル・カリーに由来 実行環境 http://haskell.org/hugs/ から Hugs を導入するのが楽ち…
前回 blog1.mammb.com の続き。 エントリポイント Main.scala package etc9.aokan object Main { def main(args: Array[String]):Unit = new Acceptor(8900, new IoHandler[HttpRequest, HttpResponse] with HttpReadChannel with HttpProcess with HttpWrit…