LISP附加方法

时间:2014-11-23 23:01:01

标签: scheme append racket

我必须创建一个名为(list-push-front lst new-list)的过程,它将new-list中的元素添加到lst的前面。例如,输出:( list-push-front'(4 3 7 1 2 9)'(1 2))应该给出
'(1 2 4 3 7 1 2 9)

这是我到目前为止,但我收到一个arity错误消息,预期参数数量(2)与预期的给定数字不匹配(1)



 (define(list-push-front lst new-list)   
  (if(null? lst) 
  '()
  (append(list-push-front(car new-list))(lst(car lst)))))




1 个答案:

答案 0 :(得分:3)

只需调用append程序,它完全符合您的需要 - 在使用新程序时,您应始终参考documentation。在这种情况下,我们不必编写显式递归,使用内置函数就足够了:

(define (list-push-front lst new-list)
  (append new-list lst))

例如:

(list-push-front '(4 3 7 1 2 9) '(1 2))
=> '(1 2 4 3 7 1 2 9)