我有这个任务要做,我需要解析一个错误的书面递归过程,并修复它。例如:这个:
(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))
该过程以引用的形式给出,包含 3 个部分:“let”、let 的 the 和主体。我想解析第二部分(意思是,我想列出一个列表,其中的每个术语都是“let”表达式中的一个单词),但无论我尝试什么,我似乎都无法解决。
我正在使用 drRacket 方案。
感谢和抱歉这么长的信息。