Haskell 6日目
Haskell 6日目。
遅延評価の残りの部分です。
遅延評価のシミュレーション
本を見たままなので、割愛します。
遅延評価の利点と欠点
遅延評価の利点
- 不要な計算を減らせる
- 無限の長さのリストを扱える
- Haskellではリストも遅延評価されるので、論理的に無限の長さを持つリストが扱えます。
- インターフェイスが統一できる
- さまざまな処理をリスト処理に統一できます。Javaで書くならツリーに対するイテレータを用意するでしょうが、Haskellの場合には、ツリーの要素すべてを含むリストを返すflattenという関数が使われます。「ツリーの全要素に順番にアクセスする」という操作が、リストというデータ構造に置き換えられるようになります。したがって、Haskellではリスト処理さえ覚えておけばツリーの処理もこなせてしまいます。もちろん、Javaでも同じようにツリーの要素すべてをリストに集めて返すことは簡単に行えますが、巨大なツリーの場合をリストに集めるのはコストが高く掛かります。リストが遅延評価されるHaskellの場合はそのような心配がありません。
関連記事
[Haskell]Haskellのリファレンスマニュアルを検索するツール href
[Haskell][プログラミング言語][関数型言語][遅延評価]Haskell 5日目
[Haskell][プログラミング言語][関数型言語]ふつうのHaskellプログラミング
[プログラミング言語]ハッカーを目指す者が習得すべき5つのプログラミング言語
[プログラミング言語]プログラミング言語ヒエラルキー
ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門
- 作者: 青木峰郎,山下伸夫
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2006/06/01
- メディア: 単行本
- 購入: 25人 クリック: 314回
- この商品を含むブログ (320件) を見る