1

我必须编写一个名为'proc3'的Scheme过程,它接受2个数字作为参数(x,y)并返回一个以列表作为参数的过程并返回一个与输入列表相同但添加了x的新列表作为第一个元素, y 作为第二个元素添加。

我到目前为止(定义proc3(lambda(xy)(lambda(list abc)(list xyc))))

解释器编译得很好,但是当我给出参数时,即 proc3(1 2),它说:不能在定义之前引用标识符。这意味着什么?

4

1 回答 1

2

问题中的代码不起作用。将其用作解决方案的模板,注意列表只是另一个参数(我称之为它lst),例如,您不必像以前那样编写list和枚举其元素:

(define proc3
  (lambda (x y)
    (lambda (lst)
      <add x y at head of lst>)))

我会让你弄清楚如何添加xy开头的细节lst。为了测试它,尝试这样的事情:

((proc3 1 2) '(3 4 5))
=> '(1 2 3 4 5)
于 2012-11-12T04:16:20.450 回答