Common Lisp中的变量

Common Lisp中的变量

💡 原文中文,约2700字,阅读约需7分钟。
📝

内容提要

本文探讨了Common Lisp的变量机制,比较了Lisp-1与Lisp-2的区别,解释了绑定、词法作用域与动态作用域的原理及其混合使用。Common Lisp的函数与数据命名空间分离,词法作用域在函数定义时确定,而动态作用域依赖于调用链。通过示例展示了两种作用域的不同表现。

🎯

关键要点

  • 本文探讨了Common Lisp的变量机制,比较了Lisp-1与Lisp-2的区别。
  • Common Lisp的函数名字空间和数据的名字空间是分离的。
  • 绑定是变量名与对象的映射关系,作用域决定了哪个变量绑定了哪个存储单元。
  • 词法作用域是静态作用域,变量名只能在函数或代码区域内存在。
  • 动态作用域的变量拥有全局的绑定栈,局部变量会创建新的绑定并压入栈中。
  • Common Lisp使用词法作用域,示例代码展示了其行为。
  • 使用special函数可以让Common Lisp中的变量具备动态作用域。
  • 可以混合使用词法作用域和动态作用域,示例代码展示了这一点。
➡️

继续阅读