【问题标题】:scheme-procedure that takes list as argument以列表为参数的方案过程
【发布时间】:2012-11-12 04:10:53
【问题描述】:

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

我到目前为止 (定义 proc3 (λ ( x y) (lambda (列出 a b c) (列表 x y c) ) ) )

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

【问题讨论】:

    标签: scheme


    【解决方案1】:

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

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

    我会让你弄清楚如何在lst的开头添加xy的细节。要对其进行测试,请尝试以下操作:

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

    【讨论】:

      猜你喜欢
      • 2017-03-08
      • 1970-01-01
      • 2011-08-04
      • 2011-08-26
      • 2018-07-12
      • 1970-01-01
      • 2019-03-20
      • 2020-12-28
      • 2013-04-18
      相关资源
      最近更新 更多