我现在正在准备考试,但我不确定我是否理解list
Scheme 中的程序。我知道它可以用于创建列表变量,如(define x (list 'a 'b 'c))
. 但是我在过程创建中看到了它的另一种用法:
1 ]=> (define foo3
(lambda (b lst)
(if b
(car lst)
(cadr lst)
)
)
)
;Value: foo3
1 ]=> (foo3 #f ’(a b))
;Value: b
1 ]=> ((foo3 #t (list cdr car)) ’(a b c))
;Value: (b c)
(list cdr car)是什么意思?(我知道引用列表中的第一个和其余部分的含义cdr
和car
含义)