zoukankan      html  css  js  c++  java
  • 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`

  • 相关阅读:
    webpack的安装与配置
    npm初始化
    gitignore的配置
    git本地已有文件夹和远程仓库对应
    git 配置
    开发环境和开发工具
    git 码云使用教程
    递归
    LeetCode 392. 判断子序列
    MongoDB基本操作
  • 原文地址:https://www.cnblogs.com/nanlan2017/p/9668809.html
Copyright © 2011-2022 走看看