我是CL的新手,我想学习如何阅读文档字符串并从REPL获取其他帮助信息。类似于Python中的help(symbol)
,或iPython中的symbol?
,或Haskell的GHCi中的:t
和:i
。
所以,给定一个符号名称,我希望能够知道:
我发现有(documentation '_symbol_ '_type_)
,但这并不是我需要的。在使用'function
之前,我需要知道符号绑定到的值的类型('variable
,'compiler-macro
,documentation
等)。然后它只返回docstring,它可能丢失或不足以使用该符号。
例如,在Lisp中,mapcar
的帮助不是很有用(CLisp的REPL):
> (documentation 'mapcar 'function)
NIL
我希望能够看到类似的东西:
>>> map?
Type: builtin_function_or_method
Base Class: <type 'builtin_function_or_method'>
String Form: <built-in function map>
Namespace: Python builtin
Docstring:
map(function, sequence[, sequence, ...]) -> list
Return a list of the results of applying the function to the items of
the argument sequence(s). If more than one sequence is given, the
function is called with an argument list consisting of the corresponding
item of each sequence, substituting None for missing values when not all
sequences have the same length. If the function is None, return a list of
the items of the sequence (or a list of tuples if more than one sequence).
答案 0 :(得分:28)
如上所述,Common Lisp具有标准功能:DESCRIBE,INSPECT和DOCUMENTATION。典型的Lisp IDE也将这些绑定到键和菜单。
对于标准Common Lisp功能,大多数IDE通过击键直接链接到Common Lisp HyperSpec文档。
大多数IDE也都有按键来显示arglist和文档。还有'空间arglist'功能。
LispWorks特定示例:LispWorks Argument list information和LispWorks Expressions menu
我建议您阅读Slime,LispWorks Editor,Allegro CL's ELI或您正在使用的任何IDE的IDE手册。
答案 1 :(得分:6)