我无法理解Scheme如何形成然后检测列表。 Hows是否确定了列表和点对之间的区别?
答案 0 :(得分:2)
列表结构由成对组成。一个正确的列表是一对配对,其中最后一对的空列表为cdr
..我们可以像这样list?
:
(define (list? lst)
(cond ((null? lst) #t)
((pair? lst) (list? (cdr lst)))
(else #f)))
或者您可以使用和/或:
(define (list? lst)
(or (null? lst)
(and (pair? lst)
(list? (cdr lst)))))