Chapter 6 总结 (Summary)

  1. 命名函数是一个存在符号的 symbol-function 部分的函数。 defun 宏隐藏了这样的细节。它也允许你定义文档字符串(documentation string),并指定 setf 要怎么处理函数调用。
  2. 定义局部函数是有可能的,与定义局部变量有相似的精神。
  3. 函数可以有选择性参数(optional)、剩余(rest)以及关键字(keyword)参数。
  4. 实用函数是 Lisp 的扩展。他们是由下而上编程的小规模示例。
  5. 只要有某物引用到词法变量时,它们会一直存在。闭包是引用到自由变量的函数。你可以写出返回闭包的函数。
  6. Dylan 提供了构造函数的函数。很简单就可以使用闭包,然后在 Common Lisp 中实现它们。
  7. 特别变量(special variable)有动态作用域 (dynamic scope)。
  8. Lisp 函数可以单独编译,或(更常见)编译整个文件。
  9. 一个递归演算法通过将问题细分成更小丶更小的子问题来解决问题。