【问题标题】:List notation and S-expressions in LISP在 LISP 中列出符号和 S 表达式
【发布时间】:2019-02-02 15:09:02
【问题描述】:

我试图在Lisp 中学习S-expressions 的概念。我遇到了以下问题:

举一个S-expression的例子,它不能 使用列表表示法表示。

list notation 是什么意思?我理解sexps 的好主意,但是否有可能创建一个sexp 不能 使用列表表示法表示?如果是这样,我能说一下代表它的二叉树吗?

【问题讨论】:

  • 知道你在哪里遇到这个会很有帮助。 “列表表示法”不是 Lisp 中的特定术语。 (对比“S-expression”,具有非常具体的含义。)。 @Svante 给出了一些不错的答案,但要给出更好的答案,我们需要知道“列表符号”的含义。

标签: lisp


【解决方案1】:

在这种情况下,我认为 list notationdotted pair notation 在线性链的情况下的缩写:list notation (a b c) for点对符号(a . (b . (c . nil)))

这意味着任何不能表达为嵌套列表的东西都符合描述:不正确的列表(即最后一个 cdr 不是 nil)或循环列表浮现在脑海中。

不正确的列表示例:(a b c . d)。最右边的叶子不是nil

循环列表:#1=(a b c . #1#)。图中有一个循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-15
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 2011-05-12
    相关资源
    最近更新 更多