让我们说我想获得一个函数的文档,我要说
(documentation 'foo 'function)
但如果我只将foo
和function
作为字符串呢?例如。 "foo"
和"function"
。
我需要做些什么才能将它们用作documentation
电话的参数?
[旁注:我正在使用clisp,但我怀疑这很重要。]
答案 0 :(得分:8)
使用FIND-SYMBOL
,而不是INTERN
。如果要查找现有函数的文档,找到符号就足够了。 INTERN
也会创建符号。
CL-USER > (find-symbol "SIN" "COMMON-LISP")
SIN
:EXTERNAL
请注意,Common Lisp符号在内部是大写的默认值。因此,您需要使用大写字符串在相应的包中查找相应的符号。
另请注意,实际上并没有类似“引用变量”的内容。您想将字符串转换为符号。
答案 1 :(得分:1)
使用INTERN将字符串转换为符号。确保你大写字符串,因为与符号不同,读者不会为你做这些:
(在SBCL中测试):
* (documentation 'mapcar 'function)
"Apply FUNCTION to successive elements of LIST. Return list of FUNCTION
return values."
* (documentation (intern "MAPCAR") (intern "FUNCTION"))
"Apply FUNCTION to successive elements of LIST. Return list of FUNCTION
return values."