我试图学习1
中S-expressions
的概念。我遇到以下问题:
举一个
Lisp
的例子,它不能是 用列表符号表示。
S-expression
是什么意思?我了解list notation
的好主意,但是有可能创建一个{
用列表符号表示?如果是这样,我能说出代表它的二叉树吗?
答案 0 :(得分:4)
在这种情况下,对于线性链,我会理解列表符号是点对符号的缩写:列表符号{{1} }表示为虚线对(a b c)
。
这意味着不能将任何表示为嵌套列表的内容都符合描述:不正确的列表(即,最后一个(a . (b . (c . nil)))
不是cdr
)或循环列表。
不正确的列表示例:nil
。最右边的叶子不是(a b c . d)
。
循环列表:nil
。图中有一个循环。