• 25个特殊操作符(special operator)


    1. CLHS (Common-Lisp-Hyper-Spec)

    http://www.lispworks.com/documentation/HyperSpec/Body/03_ababa.htm


    2. 为何特殊

    (截图自 《Practical Common Lisp》 4.4节

    即: 特殊操作符有自定义的求值规则

    是如何自定义的呢?


    3. 为什么重要?

    可以这样理解:  

    《The Root of Lisp》告诉我们:Lisp的根本是7个primitive :    quote,  atom , eq , cond , car , cdr , cons

    而最核心的lisp 运算包括:   read   ,   eval  .  分别对应着 读取器、求值器

    (截图自 《Emacs之魂》(六) -宏与元编程)

    可见,Macro果然是根据部分符号(some symbols)、去构建一些语法树(Tree of symbols)

    Special form 是有着特殊的语法、特殊的求值规则、或者两者都有的form。 它可能会操作求值的环境、控制流。

    Special operator 可以访问当前的词法环境(局部作用域)、动态环境(全局作用域)。 每个special operator定义了它所在修饰的S-表达式会被如何计算。

    部分special operator会在求值subforms时创建新的词法、动态环境。比如:`block`

  • 相关阅读:
    🔺 Garbage Remembering Exam UVA
    Cows and Cars UVA
    Probability|Given UVA
    Crossing Rivers HDU
    均匀分布和高斯分布
    Race to 1 UVA
    XMPPElementReceipt wait return,
    someone like you,
    第三方统计,
    截获的感觉,
  • 原文地址:https://www.cnblogs.com/nanlan2017/p/9668809.html
Copyright © 2020-2023  润新知