需要帮助理解Scheme中的列表

时间:2013-11-10 23:44:56

标签: list scheme

我无法理解Scheme如何形成然后检测列表。 Hows是否确定了列表和点对之间的区别?

1 个答案:

答案 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)))))