首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >到2021年,什么是最常见的lisp特殊功能?

到2021年,什么是最常见的lisp特殊功能?
EN

Stack Overflow用户
提问于 2021-08-20 23:27:42
回答 1查看 219关注 0票数 0

特殊函数之所以得到这个名称,是因为它们不同于宏和普通函数。

就像宏一样,特殊的函数做而不是来评估它们的输入。但是与宏不同的是,它们做的是而不是返回要计算的Lisp表达式。特殊的函数提供了构建Lisp的原语,例如赋值、条件和块结构。

1989年,David . Touretzky写道,有24内置的通用Lisp 特殊函数

  1. BLOCK
  2. CATCH
  3. COMPILER-LET
  4. DECLARE
  5. EVAL-WHEN
  6. FLET
  7. FUNCTION
  8. GO
  9. IF
  10. LABELS
  11. LET
  12. LET*
  13. MACROLET
  14. MULTIPLE-VALUE-CALL
  15. MULTIPLE-VALUE-PROG1
  16. PROGN
  17. PROGV
  18. QUOTE
  19. RETURN-FROM
  20. SETQ
  21. TAGBODY
  22. THE
  23. THROW
  24. 还有,UNWIND-PROTECT.

他还说:

这个列表可能会随着通用Lisp标准的未来修订而改变。

这本书于2014年重新发行。然而,这些资料是一样的。即使在2014年的这本书中,这本书的开头也和1989年的第一版完全一样:

截至1989年年中,24个内置的Lisp特殊功能是:.(第507页)。

我不确定他们是否仔细看过这一点,如果他们看了,我想他们会更新到“从mid-2014...”开始“这一年。

因此,到2021年中期,这个名单与1989年的现在的有什么不同吗?

资料来源:1-通用LISP:符号计算入门

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-21 08:40:12

在通用Lisp标准(1994年发布)中,没有特殊功能的概念。该标准定义了特殊运算符的概念,这些不能是函数。正如Ness评论的那样,特殊操作符在Common中列出(它是从标准派生的HTML页面,原始标准以打印文档和PDF文件的形式发布):3.1.2.1.2.1特别表格。这是一个固定列表->,标准没有提供给Common用户添加新的语言机制。虽然我认为Common的一些实现有一些额外的特殊操作符。

  • 窗体是指要计算的对象:符号、复合窗体或自评估对象。
  • 复合形式:以运算符或lambda表达式作为第一个元素的列表:宏形式、函数形式、特殊形式或lambda形式。
  • 特殊形式:一个复合形式,它有一个特殊的运算符作为其第一个元素
  • 特殊运算符第3.1.2.1.2.1章中列出的符号之一

为什么这本书不使用通用Lisp标准的术语?也许作者没有意识到这一点,或者认为更新措辞以使用标准措辞过于复杂(或太费劲)--这可能意味着要改变案文中的许多内容。

另一个有用的参考是PDF格式的标准的后期草案:拟议的ANSI CL标准草案。草案的内容与公布的标准基本相同,但可免费查阅。Common也有基本相同的内容,但形式不同。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68868958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档