以列表作为参数的scheme-procedure

时间:2012-11-12 04:10:54

标签: scheme

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

我到目前为止 (定义proc3       (lambda(x y)          (lambda(list a b c)              (清单x y c)          )       ) )

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

1 个答案:

答案 0 :(得分:2)

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

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

我会让您弄清楚如何在x开头添加ylst的详细信息。为了测试它,尝试这样的事情:

((proc3 1 2) '(3 4 5))
=> '(1 2 3 4 5)