我想要一个函数返回一个函数列表,其中位置k处的函数返回输入加上k。
例如
(定义myfunc(必需函数5))
((car myfunc)1)= 2
((cadr myfunc)1)= 3
((caddr myfunc)1)= 4
等
这必须使用cons和letrec以及简单的条件来完成吗?
不允许使用追加或外部功能。
只有允许的函数是lambdas,cons,conditional才是唯一允许的函数。好的是定义并调用lambda。
关于如何实现这一目标的任何想法。
( define (gen-fn-list n)
(letrec ((fn (lambda (k n) (if (= k n) (cons (lambda (x) (+ x k)) '() )
(cons (lambda (x)(+ x k) ) (fn (+ k 1) n) ) )))) (fn 1 n)))
我不知道如何做到这一点。我相信我无法涉及计划的主要概念或方案中letrec的使用。
我正在寻找概念而不是问题的解决方案/代码。
提前致谢。