私はこの割り当てを行う必要があります。そこでは、間違って書かれた再帰的プロシージャを解析し、それを修正する必要があります。例:これ:
(let ((fib (lambda (n)
(cond ((= n 0) 1)
((= n 1) 1)
(else (+ (fib (- n 1)) (fib (- n 2))))))))
(fib n))
これに変換します:
(let ((fib (lambda (n fib-param)
(cond ((= n 0) 1)
((= n 1) 1)
(else (+ (fib-param (- n 1) fib-param)
(fib-param (- n 2) fib-param)))))))
(fib n fib))
手順は、「let」、letの、およびbodyの3つの部分からなる引用として示されています。2番目の部分を解析したい(つまり、その中のすべての用語が「let」の表現から1つの単語になるリストを作成したい)が、何を試してもうまくいかないようです。
私はdrRacketスキームを使用しています。
長いメッセージをありがとう、ごめんなさい。