2006-05-15 [長年日記]

[Q3] マクロで再帰する関数が正しく動かない

@Defunのドキュメントを書くためにサンプルを書いてみたらメモリを食いつぶしてエラーになってしまったので調べてみたところ、再帰する関数を書くと引数が正しく渡っていませんでした。ちなみに試したのはすごいいい加減なこんな関数です。

@Defun('Multiply',
       @If(@Equal($1, 0),
           0,
           @Equal($1, 1),
           $2,
           @Add($2, @Multiply(@Subtract($1, 1), $2))))

ついでに、@Exitがまともに使えなかったのも修正。

[]