パスワードを忘れた? アカウント作成
484074 journal

kappatottaotokoの日記: Lispでの再帰 2

日記 by kappatottaotoko
久しぶりの日記 やさしいLisp入門でLispの再帰が出てきたのですが、 よく分かりませんでした。 Cの再帰のときも悩んだのでロジックに弱いなぁと再度実感しています。 どなたか識者の方ヒントを教えてくれませんか? ・階乗を計算すプログラムです。

(defun myFactorial (myInteger)
    (if (not (typep myInteger 'integer))
        0
        (if (<= myInteger 0)
            1
            (* myInteger
                (myFactorial (- myInteger 1))))))

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by 130R (31126) on 2007年09月25日 11時09分 (#1224316) 日記
    どのあたりが分からないのかわかりませんが、このコードはあんまり良くない気もします。
        (if (not (typep myInteger 'integer))
            0
    ここは型チェックなので要りません。で、残りの部分で一つずつ数字を当てて展開してみてはどうでしょうか
    (defun myFactorial (myInteger)
      (if (<= myInteger 0)
          1
        (* myInteger
           (myFactorial (- myInteger 1)))))
    再帰の説明は英語ですがLittle Schemerが丁寧です。
typodupeerror

Stableって古いって意味だっけ? -- Debian初級

読み込み中...