Haskell の末尾再帰に付いて
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/haskell/haskell-jp/570
うーん。遅延評価で非正格だと、ループに展開されてスタックが消費されない、なんていうメリットがそもそも意味をなさないのかな?必要になってから値が計算されるってのは、敢えて例えるならイベントループみたいな感じにもともと展開されているようなものと考えられる。気がする。
いずれにせよ、reverseとか使っちゃダメです。遅延評価が台無しです。
http://i.loveruby.net/ja/stdhaskell/samples/tail2.hs.html
素晴らしい。