list - Lisp : (A (B C)), 为什么 1 个列表和 1 个原子?

标签 list syntax lisp parentheses

我正在学习 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/

相关文章:

c# - 如何在 C# 中存储等效值表以在我的示例中实现最佳使用?

java - 在不同的类中创建内部类对象数组

mysql - cake php中的查询函数

audio - 使用 rsound 播放正弦波信号

webserver - 如何将数据发送到 Racket 服务器?

python - 如何从列表中打开文件

python - 如何比较python中默认字典中列表的索引值

Python:检查命名元组列表是否包含特定属性值

c# - Break inside switch 无法终止 FOR 循环

Emacs Lisp 打印输出