由于list?
不是SICP中的Scheme中的原语,因此我正在寻找其等效原语。我考虑了这些替代方案:-
pair?
,但它返回#f
的{{1}}。 '()
或pair?
。看起来还可以,但是吗?有没有更简单的东西?
答案 0 :(得分:3)
由于列表是()
或pair?
是列表的cdr
,因此没有原始值。由于列表不是原始列表,而是对事件与空列表的复合。 list?
可以这样定义:
(define (list? lst)
(or (null? lst)
(and (pair? lst)
(list? (cdr lst)))))