Common Lisp中函数的作用域

时间:2015-01-16 18:05:41

标签: common-lisp

假设我必须定义一个名为foo的函数。假设为了定义它,我使用了一些辅助函数foo1foo2foo3,......

当我加载包含这些函数的文件时,我可以从顶层使用所有这些函数。相反,我想从顶层“看到”只有函数foo并“隐藏”其他函数。我怎样才能达到这个结果?

1 个答案:

答案 0 :(得分:4)

您可以使用flet

如,

(flet ((foo1 (...) ...)
       (foo2 (...) ...)
       (foo3 (...) ...))
  (defun foo (...) 
    (foo1 (foo2 (foo3 ...))))
  (defun goo (...)
    (foo2 (foo1 (foo3 ...)))))