【发布时间】:2013-05-01 17:27:45
【问题描述】:
我现在正在准备考试,但我不确定我是否理解 Scheme 中的list 程序。我知道它可以用来创建像(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 在引用列表中的第一个和其余部分方面是什么意思)
【问题讨论】:
标签: functional-programming scheme