関数型プログラミング言語Haskell
■ このスレッドは過去ログ倉庫に格納されています
>>777
Haskellは末尾再帰を認識しないです.
もともと末尾再帰の書き変えは,スタックの消費を抑えるためにSchemeや
MLでは導入されたけれども,Haskellは評価がcall-by-nameでlazy
だから単純な末尾再帰のループへの書き変えができないんです.というのも,
1ループ毎に計算結果を確定させないといけないからで,遅延評価とはうまく
なじまないからです. ■ このスレッドは過去ログ倉庫に格納されています