関数型プログラミング言語Haskell Part22
■ このスレッドは過去ログ倉庫に格納されています
0652デフォルトの名無しさん
2013/06/27(木) 07:56:45.02f x = f ...
みたいに、右辺の一番外側が自分自身を呼んでいればいい
ただし、caseとlet(や、構文糖であるifとwhere)が挟まっていてもok
f x = case x of [] -> 1; hd:tl -> f tl
みたいに
この形でなくても末尾再帰になることもあって、例えば
f x = putStrLn x >> f
だと、一番外側の呼び出しは(>>)だけど、IOモナドの(>>)ならfを一番外側で呼ぶので、
間接的に末尾再帰になる
■ このスレッドは過去ログ倉庫に格納されています