[mie-dev:00011] 再帰

Back to archive index

池田優一 eclip****@cspc*****
2005年 11月 7日 (月) 23:58:22 JST


池田です。

作ってて気付いたんですが、
なんか再帰がうまくいきません。

fact = {FACT|n| if :(n <= 1) :{1} :{FACT[n-1]}!};
fact[5];

としたとします。
するとnに5が適用されて、

{FACT|n = 5| if :(n <= 1) :{1} :{FACT[n-1}!}!;
{FACT|n = 5| if :(5 <= 1) :{1} :{FACT[4]}!}!;

ここで {FACT[4]}の部分ですが、
既にnは埋められているので、

{FACT|n=5, 4| if ...}

となってしまい、無限に4が追加されてしまいます。
どうしよ・・・
なんかいいアイデアないでしょうか。



mie-dev メーリングリストの案内
Back to archive index