はじめての Haskell

関数型言語に興味がわいてきたので試してみる。関数型言語と聞いてはじめに浮かんだのは LISP だったが、選んだのは Haskell。選んだ理由はこれといってないけけれど強いて挙げるとすると、純粋関数型言語であることと、O'Reilly から最近(という程最近でもないが)本が出版されたので。純粋関数型言語というのはよくわかっていないが、非純粋よりも純粋の方がよさげなので。

環境構築

Haskell には コンパイル版とインタプリタ版があるようだ。お試しなので、インタプリタ版を使うことにする。OS は Ubuntu 9.10 を使っている。

# apt-get install hugs

はじめてといえば

はじめて書くプログラムといえば当然 Hello World! ですよね。というわけで、次の内容を helloworld.hs に書き込む。

main = putStrLn "Hello, World!"

runhugs で実行する。

% runhugs helloworld.hs
Hello world!

感想

こっ、これが関数型言語かー。という程の衝撃は、これだけのコードでは感じられなかった。ただ、今までに使ったことがある言語*1とは違うなとは思った。今までのだと「main には putStrLn を引数 "Hello World!" で読んだ時の返り値が代入される」と読めるんだけど、Haskell では「main は putStrLn を引数 "Hello World!" で呼ぶ処理」と読める。なんか、難しそうなにおいがただよってきたな〜。
あと、コンパイラ版とインタプリタ版とがあるなんてちょっとびっくり。普通はどちらか片方だけだとばかり思ってた。

*1:C, PHP, Ruby