截至2021年Common Lisp内置特殊函数列表及变动情况问询
Common Lisp 内置特殊函数问题解答
特殊操作符(旧称特殊函数)定义
特殊操作符得名于其与宏、普通函数的核心区别:
- 与宏相同,特殊操作符不会对输入参数自动求值
- 与宏不同,特殊操作符不会返回待求值的Lisp表达式,是构建Lisp语言的底层原语,覆盖赋值、条件判断、块结构等核心基础能力
1989年列表与2021年的变动说明
Common Lisp的官方正式标准为1994年发布的ANSI X3.226-1994,之后没有推出过新的官方修订版本,因此标准层面的特殊操作符列表从1994年至今完全固定,截至2021年年中也无任何变化。
与1989年David S. Touretzky在《Common Lisp:符号计算通俗导论》中记载的24个特殊函数列表相比,共有3处标准调整:
- 移除了旧列表中的
COMPILER-LET - 移除了旧列表中的
DECLARE(ANSI CL将其归类为声明标识符,不属于特殊操作符范畴) - 新增了
LOAD-TIME-VALUE作为特殊操作符
该书2014年再版时未修改相关表述,因为原版内容本身限定了统计时间为1989年年中,并非未做内容核对:
截至1989年年中,Common Lisp内置的24个特殊函数为:……
(出自该书第507页)
ANSI Common Lisp 标准完整特殊操作符列表
共23个,具体如下:
BLOCKCATCHEVAL-WHENFLETFUNCTIONGOIFLABELSLETLET*LOAD-TIME-VALUEMACROLETMULTIPLE-VALUE-CALLMULTIPLE-VALUE-PROG1PROGNPROGVQUOTERETURN-FROMSETQTAGBODYTHETHROWUNWIND-PROTECT
内容的提问来源于stack exchange,提问作者Pedro Delfino
相关产品推荐
相关产品推荐

