2007-06-21
Haskellをはじめる。
Haskellをやることにした。誤った記述があるかも(ry
まずはHaskellの処理系であるGHC(Glasgow Haskell Compiler)のインストール。(他の処理系もいくつかあるようです。)公式サイトにバイナリが用意されてたので、ダウンロードして./configure、make install をたたいただけ。あー、らくちん。
次、このページを見ながら実際にコードを書いてみる。
GHCはインタプリタ(ghci)とコンパイラ(ghc)がついてるみたい。まずはコマンドラインから「ghci」と打ってインタプリタを起動。
Prelude>
こういうプロンプトが出る。hello worldから。
Prelude> "Hello, World!" "Hello, World!"
Haskellでは文字列を評価すると画面に結果を出力する。とのこと。
Prelude> putStrLn "Hello, World!" "Hello, World!"
明示的に出力することも出来るよ!の例。
お次はコンパイラ
main = putStrLn "Hello, World!"って内容のファイルを作成しコンパイルする。あ、ファイル名はhello.hs。
ghc -o hello hello.hs
すると、helloって名前のバイナリが出来てる。これを実行すれば、「Hello, World!」って出力が得られる。
最後に関数の定義。ghciから
Prelude>let fac n = if n == 0 then 1 else n * fac(n-1)
与えられた数値の階乗を計算する関数ね。↓こんな感じで使う。
Prelude> fac 1 1 Prelude> fac 2 2 Prelude> fac 3 6 Prelude> fac 4 24 Prelude> fac 5 120 Prelude> fac 40 815915283247897734345611269596115894272000000000
コンパイルする場合は、let無しでこんな風に書けるよ。
fac 0 = 1 fac n = n * fac (n-1) main = print (fac 10)
感想
想像ほど難解ってわけでもなさそう。JavaScriptを少しでもやっていたのが良かったのかな。Ruby同様、時間のある時にちまちま書いていきたいと思います。