Common Lisp 函数 require 和 provide 源代码分析
Common Lisp 函数 require 和 provide 源代码分析 === 涉及文件: l1-files.lisp l1-init.lisp 作者: FreeBlues 2013-08-19 === 目录 0 概述 1 源代码: 2 代码分析 2.1 函数 provide 代码分析 2.2 函数 require 代码分析 2.3 其他辅助函数 0 概述 require 使用场景, 使用 quicklisp 安装好一个模块后,该模块实际上并未被自动加载到 lisp 映像中, 所以每次使用该模块之前, 需要执行 (require 模块名) 来加载该模块. provide 使用场景, 自定义模块时, 需要在该模块代码最后一行执行 (provide 模块名) 来保证该模块被加载一次后就把模块名导入到 *module* 列表中. require 用来加载一个模块到 lisp 映像, 如果它已经被加载过, 则保持原样, 不会重新加载(看起来跟 load 函数类似, 不过 load 需要输入文件路径和文件名, 而 require 则只要提供模块名就可以了). 可以指定加载路径, HyperSpec 中有如下几种形式: Examples: ;;; This illustrates a nonportable use of REQUIRE, because it ;;; depends