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`

  • 相关阅读:
    php_l3arning_notes_3
    php_l3arning_notes_2
    php_l3arning_notes_1
    从 HTTP 到 HTTPS 再到 HSTS
    WSGI&ASGI
    WSGI 介绍
    什么是multipart/form-data请求
    SSH 端口转发
    Redis与RabbitMQ作为消息队列的比较
    数据库索引,到底是什么做的?
  • 原文地址:https://www.cnblogs.com/nanlan2017/p/9668809.html
Copyright © 2011-2022 走看看