首页 > 解决方案 > 非空方案列表是否包含至少一个原子?

问题描述

The Little Schemer(第 4 版)中,声称一个错误的列表null?至少包含一个 atom,或者我从阅读文本中了解到。

这对我来说没有意义,因为(atom '())它是错误的,我们可以将它们粘贴到一个列表中以使其非空:

> (null? '(()))
#f

所以我的问题是,这是我的阅读错误,还是定义问题?由于它不在勘误表中,我认为这样一本经过充分研究的书不会有这样的错误。

如果我们认为(())与原子相同(() . ())或什 (cons '() '())至然后考虑cons原子,那么我可以看到您如何到达那里,但我认为这不是正在发生的事情。

(这是在 Racket 7.0 中测试的,atom?书中给出的定义,即

(define atom?
  (lambda (x)
  (and (not (pair? x)) (not (null? x)))))

我知道这不包括有趣的球拍功能,但在这里应该足够了。)

标签: schemelispracketthe-little-schemer

解决方案


lat假定为书中该点的原子列表。

如果它不是空的,根据定义它包含一些原子。

这不是关于 Lisp,而是关于这本书的介绍。


推荐阅读