1

これは、悪名高いSICPからのMITスキームを使用しています。何が起こっているのか頭を包むことができません。を計算する手順は次のとおりN!です。

(define (factorial n)
     (if (= n 0)
          1
          (* n (factorial (- n 1)))))

フィボナッチを計算する手順は次のとおりです

(define (fib n)
   (cond ((= n 0) 0)
         ((= n 1) 1)
   (else (+ (fib (- n 1))
            (fib (- n 2))))))
4

2 に答える 2

2

SICPの本には、線形再帰がどのように機能するか(階乗の例の場合)の明確で段階的な説明があります。また、ツリーの再帰の詳細を示す優れた樹形図(フィボナッチの例の場合)を備えた優れた説明もあります。

再帰がSchemeプログラムで一般的にどのように機能するかをより理解しやすい説明が必要な場合は、 TheLittleSchemerまたはHowtoDesignProgramsのいずれかを参照することをお勧めします。どちらの本も再帰プロセスを理解する方法を教えてくれます。一般に。

于 2012-10-17T18:34:31.837 に答える
1

再帰を理解するには時間がかかるので、しばらくお待ちください。

あなたがコンピューターであると想像し、計算方法を段階的に説明することをお勧めします(factorial 4)(factorial 4)および(factorial 3)(など)を完全に異なるエンティティとして考えることにより、関数の「内部」に同時に複数回入ることができます。

于 2012-10-17T20:13:50.003 に答える