Haskell

モナドの入り口に立つ

Haskellを本格的に勉強しはじめて20日と少し経ち、関数型言語のイメージのようなものは大体つかめて来たと思うので、Haskellerの間で「難関」と言われている「モナド」に挑戦します。IOや、List、Maybeがモナドだ、というのはいやというほど聞かされていた…

Haskellでスタックを実装する

以前から、Haskellには副作用が無いので、スタックの実装をするにはどうすれば良いのか、という事を色々思いめぐらせたりしていたのですが、悩んでても仕方がないので調べてみたら、思いの外単純でした。大抵のサンプルでは、ちゃんと型を指定していたりする…

遅延評価についてもう少し

次の例を考えてみます。 Prelude> let foo = 1 : map (+1) foo Prelude> take 10 foo [1,2,3,4,5,6,7,8,9,10]例えば、機械的に四つ目の要素を計算する部分を書いたら次のようになりますよね。 Prelude> 1 : map (+1) [1,2,3] [1,2,3,4]五つ目はこう。 Prelud…

関数型言語に慣れる

Haskellの勉強を始めたのは、先日のエントリで書いたとおりです。それまでも、なんとなくLispを触ってみた事はあったのですが、表面を撫でた程度で終わっていたので、これでようやく関数型言語への本格的な第一歩を踏み出した事になります。今はちょうど、す…

UbuntuでHaskell

なにか関数型言語を実用的なレベルまで使えるようになりたいと、常々思っていたのもあり、LispかHaskellかで迷ったのですが、対話形式での扱いやすさはHaskellのほうが強い気が(なんとなく)したので、Haskellをメインに学習していく事にしました。とりあえ…