如何获取所有内置列表?

时间:2014-02-07 18:19:06

标签: lisp common-lisp

Practical Common Lisp学习Lisp我经常遇到新的内置表单(如果没有使用正确的术语,请纠正我)。最新的一个是'character

所以我想知道是否有一个命令来获取Common Lisp中所有内置的列表?这样我就可以在一个地方轻松浏览它们。

也许类似于Python的dir(__builtins__)

我们将不胜感激。

1 个答案:

答案 0 :(得分:7)

您可以收集COMMON-LISP包中所有外部符号的列表:

(let (lst)
  (do-external-symbols (s (find-package 'common-lisp) lst)
    (push s lst)))

他们中有很多人!查看the symbol index of the hyperspec

很多这些符号你可能永远都不会使用,我不确定是否值得一看这些符号。

我建议熟悉all of the special forms

block      let*                  return-from      
catch      load-time-value       setq             
eval-when  locally               symbol-macrolet  
flet       macrolet              tagbody          
function   multiple-value-call   the              
go         multiple-value-prog1  throw            
if         progn                 unwind-protect   
labels     progv                                  
let        quote                                  

现在,CHARACTER特别是标准类型。 hyperspec也有a list of those,但我认为没有一种标准方法可以通过编程方式找到所有类型。