我必须编写一个名为'proc3'的Scheme过程,它将2个数字作为参数 (x,y)并返回一个过程,该过程将列表作为参数并返回一个新的 列表与输入列表相同但添加了x作为第一个元素 和y作为第二个元素添加。
我到目前为止 (定义proc3 (lambda(x y) (lambda(list a b c) (清单x y c) ) ) )
解释器编译得很好,但是当我提出论点时 即proc3(1 2),它说:在定义之前不能引用标识符。 这是什么意思?
答案 0 :(得分:2)
问题中的代码不起作用。使用此作为解决方案的模板,注意列表只是另一个参数(我称之为lst
),例如,您不必编写list
并枚举它的元素和你一样:
(define proc3
(lambda (x y)
(lambda (lst)
<add x y at head of lst>)))
我会让您弄清楚如何在x
开头添加y
和lst
的详细信息。为了测试它,尝试这样的事情:
((proc3 1 2) '(3 4 5))
=> '(1 2 3 4 5)