こないだ Prolog を実装する時には随分 Haskell の遅延評価にお世話になりました。そこで、この大変便利な機能を普通の言語で使うにはどうしたら良いだろうかと色々調べると、Scheme の http://srfi.schemers.org/srfi-41/srfi-41.html というのに詳しく書いてある事が分かりました。他の言語でも色々やってる人居るみたいだけど、標準ライブラリになってるのは Scheme しか見つかりませんでした。 早速手元に gauche があるので実験します。gauche のは SRFI-40 とあってちょっと違うみたいだけど気にしない方向で。 gosh> (use util.stream) #<undef> gosh> (stream 1 2 3) #<promise(stream) 0x695b40> gosh> (stream-car (stream