我正在学习 Lisp,但我不理解他们在解释列表 和原子 的类(class)中给出的一些示例。 p>
我明白了:
- (A B) :1个列表,2个原子
- (A B C) :1个列表,3个原子
我不明白这部分:
- (A (B C)) :1个列表,1个原子
经过深思熟虑,我认为:
A 是原子,(BC) 是列表,但我真的不明白为什么....
- 为什么第一个和最后一个括号不被视为一个列表?
- 这里我们为什么不把 B 和 C 算作原子?
在此先感谢您对这个奇怪的事情的任何启发:)
最佳答案
我会说答案是错误的。为了与之前的答案保持一致,应该是:
- (A (B C)) :2个列表,3个原子
原因如下:总共有三个原子:A B C
。有一个嵌套列表:(B C)
和一个外部列表:(A (B C))
,总共有两个列表。
如果问题是“计算列表内的顶级元素”,那么说“1 个列表,1 个原子”是正确的 - 但这与前两个不一致示例,其中考虑了显示的所有原子和列表,包括外部列表。
关于list - Lisp : (A (B C)), 为什么 1 个列表和 1 个原子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16801645/