我目前正在玩 LISP。一切都很好,但我无法理解以下问题。
我有这个附加操作:
(define (append l1 l2)
(if (eq? l1 null)
l2
(cons (first l1)
(myappend (rest l1) l2))))
我这样使用它:
(myappend (cons (cons 1 2) null) '(4 5))
Racket中的结果 是:
'((1 . 2) 4 5)
但为什么?在我看来,它应该是'(1 2 4 5),因为 cons 返回一个列表,而 myappends 附加两个列表。有谁能够帮助我?LISP 在做什么?