【问题标题】:What does the . (period) symbol reference in elisp?有什么作用。 (句点)elisp中的符号引用?
【发布时间】:2013-04-01 21:51:19
【问题描述】:

正如锡上所说,elisp 中的.(句点)符号引用了什么?我在 Emacs 文档中找不到变量引用,而且 Google(不出所料)没有帮助。

【问题讨论】:

    标签: emacs elisp


    【解决方案1】:

    句点是cons 运算符,而不是lisp 意义上的符号。例如:

    (setq nums '(1 . 2))
    

    这相当于:

    (setq nums (cons 1 2))
    

    【讨论】:

    • 完美,谢谢。我来自没有中缀运算符的 Clojure,我认为 elisp 是一样的。很高兴知道。
    • 另见C-h i g (elisp) Dotted Pair Notation RET。我认为 Clojure 在这方面是一个例外——我的理解是大多数 lisp 都能识别这种表示法。
    • @mybuddymichael . 不像具有中缀语法的语言那样是中缀运算符——例如,你不能写 (foo . bar . baz)。相反,(form1 . form2) 是创建 conses 的基本语法,类似于 (form1 form2 form3...) 是在 clojure 和 elisp 中创建列表的基本语法。不同之处在于,在 elisp 中,(1 2 3)(1 . (2 . (3 . nil))) 的语法糖。为什么 clojure 选择省略创建 cons 的语法并不是很明显。
    • Clojure 有 conses 吗?我认为它有列表和对作为不同的东西(但是,我还没有真正深入研究它)。
    • 是的,Clojure 有 conses 和 cons 函数,但它不支持点对符号。
    猜你喜欢
    • 1970-01-01
    • 2010-09-26
    • 2020-02-07
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 2011-04-06
    • 1970-01-01
    • 2016-06-17
    相关资源
    最近更新 更多