Concurrent Clean : 遅延評価だと計算コストを無視できるのか?

先ほど書き上げたClean入門の最新ページとか見てもらえると分かりますが、計算コストには結構注意してます。ただし、遅延評価は正格評価と評価順序が逆なので、再帰の方がコスト的に有利になるというだけです。
正格評価では、繰り返しより再帰の方がコストが有利になるというケースはあまりない(というか全くない?)ですが、遅延評価ではそれがあるのです。有利だから再帰するわけで、そうでなければ繰り返すのが筋ではないかと思います。(もっとも、プロトタイピングやデータ量が少ない場合は、計算量を無視して再帰しますが、遅延評価では、コスト的な不利がないので、[0..10000000]みたいなちょっとありえないリストでも平気で作るので、逆にちゃんとしておかないとstack overflowやheap fullにすぐになります。)
Haskell方面のことはよく分かりませんが、Cleanでは「正格性の注釈」でその辺のコスト意識をストレートに表現できるので、ちゃんと気にしてちゃんと注釈をつけるのがスマートなCleanプログラミングだと思っています。

P.S.

ところで、JavaとかPascal(Delphi)とかで、末尾再帰を最適化しないのは、手続き型の正格評価言語だから、再帰で書くことにメリットが少ないからなんでしょうね。