Haskellにリベンジ
関数型プログラム言語「Haskell」にかつて1度挑んだことがありましたが、HelloWorldだけやってそれ以降やってませんでした。(そもそもHaskellの流儀的にHelloWorldが正しいのか分からないけどw)
ずっと「もう少し理解したいなあ」と思っていたのですが、ちょうど今日気が向いたのでチャレンジしてみました。
教本はこちら。
「ふつうのHaskellプログラミング」です。
ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門
- 作者: 青木峰郎,山下伸夫
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2006/06/01
- メディア: 単行本
- 購入: 25人 クリック: 314回
- この商品を含むブログ (320件) を見る
とりあえず今日は、2章までを軽くやった感じです。
最後の練習問題の文字数カウント(バイト数?)ですが、これだけで実装できるのがちょっと気持ちよかったかも。
main = do cs <- getContents print $ length cs
それと、まだちょっと慣れないのが$の扱い。
上の例だと、「print $ length cs」というのは、Cライクに書くと「print(length(cs))」ということらしいです。
実際にHaskellでも「print(length cs)」と書いて動くようですが、流儀としては$を使う方だとか。
その他のCライクな言語ならすぐに習得する自信はあるのですが、関数型はホント別系統なのでなかなか難しいですね。
よくプログラムが分からないという人に「あんなの簡単だよw」と言ってしまうのですが、Haskellに触れると「ああ、プログラムを知らない人が始めるのって、こういう感覚なんだ」と思い知らされます。
うん、今度からプログラム初心者にはもっと優しく触れることにしようw