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同様、時間のある時にちまちま書いていきたいと思います。

Posted at 21:39 in | WriteBacks (0) | Edit