2007-05-24
■ [haskell] できるのが重要なのではなく、簡単に使えることが重要
この前の勉強会の補足。
遅延評価の利点に「無限リストが使える」ってのが挙げられていた。でも正確に言えば、これはHaskellだけの特徴ではない。 クロージャが用意されている言語ならRubyだろうとPerlだろうとJavascriptだろうと、遅延したい処理をクロージャとして渡してやることで (面倒ではあるが) 無限リストのようなものが作れるからだ。
じゃあHaskellの特徴は何かっていうと、それは遅延評価がデフォルトであることだ。[1..]のような超簡単な記述で無限リストが使えて、それは 普通のリストと同じようにmapしたりfilterしたりn番目の要素を取ってきたりできる。そこにはもう有限と無限の区別がない。
無限リストが「ふつうに」使える世界では、きっと見たこともないやり方で問題を解いたりするのだろう。後半の章が楽しみだ。