タグ

Pythonとlazyに関するpaellaのブックマーク (1)

  • 遅延評価のリストを作る - 西尾泰和のはてなダイアリー

    データ構築子はただの関数じゃないのか? Haskell のリストが分からない。遅延評価も分からない。 - IT戦記 http://d.hatena.ne.jp/amachang/20080201/1201881246 いや、関数なのは別に構わないのだけど、リストを返す関数にしてしまってはいけないと思う。それじゃ「(呼ぶ前の)未評価の状態」と「(読んだ後の)リスト全部ができあがっている状態」の2つの状態しか取れない。実際には「頭1個だけ評価済み」「頭2個だけ評価済み」…と無数の状態があるので、これが全部関数に分かれている必要がある。 というわけでまず「評価前の状態(Thunk)」と「評価後の値」を表現するクラスを作ってみた。Thunkのforceを呼ぶと結果がValueになるまで評価を繰り返す。 >>> class Value(object): def __init__(self, valu

    遅延評価のリストを作る - 西尾泰和のはてなダイアリー
  • 1