【发布时间】:2019-02-02 12:46:47
【问题描述】:
我正在尝试编写自己的“列表?”方案中的谓词。我知道列表的定义:1. 空列表 2. 对,其 cdr 是一对
我知道我的代码是错误的,因为它在每一对上都返回真值,但每一对都不是一个列表。我不知道如何实现列表的 cdr 必须也是一对的条件。
(define (my-list? x)
(if (equal? x ()) #t
(pair? x)))
【问题讨论】:
-
"2.pair,其 cdr 是一对"是错误的。我应该是“2. paor,其 cdr 是
list?”您的示例没有检查 cdr,因此当参数是一对时您需要这样做。