Python では、次のようなことができます。
lazy = ((i,j) for i in range(0,10000) for j in range(0,10000))
sum((1 for i in lazy))
しばらく時間がかかりますが、メモリ使用量は一定です。
scala での同じ構造:
(for(i<-0 to 10000; j<-i+1 to 10000) yield (i,j)).count((a:(Int,Int)) => true)
しばらくすると、java.lang.OutOfMemoryError
遅延評価する必要があるにもかかわらず、 が表示されます。