遅延評価

このページは最後に更新されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

last mod. 2008-04-07 (月) 17:39:46

関数型言語の比較

OCaml

lazy を付けると、Lazy.forceするまで評価が遅延されます。

# let t = lazy (print_int 10);;
val t : unit lazy_t = <lazy>
# Lazy.force t;;
10- : unit = ()

Stream モジュールを使えば、遅延ストリームを手軽に書くことが出来きます。

SML

言語仕様としては存在しません。 SML/NJ は独自拡張として SUSP モジュールがあり、SUSP.lazyとSUSP.forceで遅延評価を行うことができます。

Haskell

全ての評価に遅延評価が用いられます。

新規 編集 添付