返回一个程序列表,其中位置k处的函数将k添加到输入而不使用方案中的cons或list函数?

时间:2017-03-19 06:26:40

标签: recursion scheme racket

我想要一个函数返回一个函数列表,其中位置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的使用。

我正在寻找概念而不是问题的解决方案/代码。

提前致谢。

0 个答案:

没有答案