Haskell

generic の自己再帰定義活用

Haskell の Monad の bind は、戻り値が第一引数と同じ Monadインスタンスでないとなりません。そうでないとモナド則が成り立たないですしね。 そもそも Haskell の ad-hoc polymorphism では、同じ型クラスの違うインスタンスを混ぜて扱うことは許していな…

Purely Functional Data Structures 写経 5.4 Splay Heaps

Purely Functional Data Structures作者: Okasaki出版社/メーカー: Cambridge University Press発売日: 1999/07/01メディア: ペーパーバック購入: 5人 クリック: 46回この商品を含むブログ (25件) を見るHaskell写経の続きです。5.3章は3.2章の Binomal Heap…

Purely Functional Data Structures 写経 5.2 Queues

Purely Functional Data Structures作者: Okasaki出版社/メーカー: Cambridge University Press発売日: 1999/07/01メディア: ペーパーバック購入: 5人 クリック: 46回この商品を含むブログ (25件) を見るHaskell 写経の続きです。4章は遅延評価の章で、Stand…

Purely Functional Data Structures 写経 3.3 Red-Black Trees

Purely Functional Data Structures作者: Okasaki出版社/メーカー: Cambridge University Press発売日: 1999/07/01メディア: ペーパーバック購入: 5人 クリック: 46回この商品を含むブログ (25件) を見るHaskell 写経の続きです。P24〜P29赤黒木です。赤黒木…

Purely Functional Data Structures 写経 3.2 Binomial Heaps

Purely Functional Data Structures作者: Okasaki出版社/メーカー: Cambridge University Press発売日: 1999/07/01メディア: ペーパーバック購入: 5人 クリック: 46回この商品を含むブログ (25件) を見るPurely Functional Data Structures の Haskell 写経…

モナドは関数合成の抽象化

以前にモナドについて書いたのですが、どこかで書かれていた「モナドは関数合成の抽象化」という表現がなんとなくしっくりきました。合成戦略を各モナドインスタンスが担う、と。それから do構文について。最初、do構文は複文を実現するための機構なのかな、…

Purely Functional Data Structures 写経 3.1 Leftist Heaps

Purely Functional Data Structures作者: Okasaki出版社/メーカー: Cambridge University Press発売日: 1999/07/01メディア: ペーパーバック購入: 5人 クリック: 46回この商品を含むブログ (25件) を見る続きです。P17〜P20まずは Heap の signature から。 …

Purely Functional Data Structures 写経 2.2 Binary Search Trees

Purely Functional Data Structures作者: Okasaki出版社/メーカー: Cambridge University Press発売日: 1999/07/01メディア: ペーパーバック購入: 5人 クリック: 46回この商品を含むブログ (25件) を見る続き。P11〜P15 data Ord a => Tree a = E | T (Tree …

Purely Functional Data Structures 写経 2.1 Lists

Purely Functional Data Structures作者: Okasaki出版社/メーカー: Cambridge University Press発売日: 1999/07/01メディア: ペーパーバック購入: 5人 クリック: 46回この商品を含むブログ (25件) を見る関数型言語ならではのデータ構造を身に付けるために P…

Monad インスタンスのモチベーション

Haskell の勉強を続けているわけですが、未だに Monad がすっきりと腑に落ちていません。Monad則は理解できます。 個々の Monad Instance、Maybe や List、State と言った個別の instance に関しては、使い方もメリットも理解できます。 ただ逆に、こういう…

Javaで無限リスト

Haskell の勉強をしていたら iterate という関数を見つけて非常に興味がわきました。 iterate は「初期値」と「現在の値から次の値を算出する関数」の二引数を与えると無限リストを生成してくれる関数です。 線形合同法を用いた疑似乱数列なども簡単に作れて…