如何查看 defparameter、defconstant 或 defvar 的文档字符串?
How to see doc string for a defparameter, defconstant, or defvar?
使用普通的 lisp,您可以添加许多文档字符串,例如:
CL-USER> (defun foo ()
"doc string for foo"
nil)
FOO
CL-USER> (documentation 'foo 'function)
"doc string for foo"
CL-USER> (describe 'foo)
COMMON-LISP-USER::FOO
[symbol]
FOO names a compiled function:
Lambda-list: ()
Derived type: (FUNCTION NIL (VALUES NULL &OPTIONAL))
Documentation:
doc string for foo
Source form:
(SB-INT:NAMED-LAMBDA FOO
NIL
"doc string for foo"
(BLOCK FOO NIL))
; No value
所以我终于可以读回文档字符串,但是使用符号和变量我无法通过文档取回它:
CL-USER> (defparameter bar 3 "doc string for bar")
BAR
CL-USER> (describe 'bar)
COMMON-LISP-USER::BAR
[symbol]
BAR names a special variable:
Value: 3
Documentation:
doc string for bar
; No value
CL-USER> (documentation 'bar 'symbol)
WARNING: unsupported DOCUMENTATION: doc-type SYMBOL for object of type SYMBOL
NIL
所以'symbol 的类型是错误的,或者我会使用哪种类型。我不确定到底发生了什么
我正在使用:SBCL 1.3.10
让我们看看 documentation
的文档 ;-)
CL-USER> (documentation 'documentation 'function)
"Return the documentation string of Doc-Type for X, or NIL if none
exists. System doc-types are VARIABLE, FUNCTION, STRUCTURE, TYPE, SETF, and T.
[...]"
等等:
CL-USER> (documentation 'bar 'variable)
"doc string for bar"
有关详细信息,请参阅 documentation
。
使用普通的 lisp,您可以添加许多文档字符串,例如:
CL-USER> (defun foo ()
"doc string for foo"
nil)
FOO
CL-USER> (documentation 'foo 'function)
"doc string for foo"
CL-USER> (describe 'foo)
COMMON-LISP-USER::FOO
[symbol]
FOO names a compiled function:
Lambda-list: ()
Derived type: (FUNCTION NIL (VALUES NULL &OPTIONAL))
Documentation:
doc string for foo
Source form:
(SB-INT:NAMED-LAMBDA FOO
NIL
"doc string for foo"
(BLOCK FOO NIL))
; No value
所以我终于可以读回文档字符串,但是使用符号和变量我无法通过文档取回它:
CL-USER> (defparameter bar 3 "doc string for bar")
BAR
CL-USER> (describe 'bar)
COMMON-LISP-USER::BAR
[symbol]
BAR names a special variable:
Value: 3
Documentation:
doc string for bar
; No value
CL-USER> (documentation 'bar 'symbol)
WARNING: unsupported DOCUMENTATION: doc-type SYMBOL for object of type SYMBOL
NIL
所以'symbol 的类型是错误的,或者我会使用哪种类型。我不确定到底发生了什么
我正在使用:SBCL 1.3.10
让我们看看 documentation
的文档 ;-)
CL-USER> (documentation 'documentation 'function)
"Return the documentation string of Doc-Type for X, or NIL if none
exists. System doc-types are VARIABLE, FUNCTION, STRUCTURE, TYPE, SETF, and T.
[...]"
等等:
CL-USER> (documentation 'bar 'variable)
"doc string for bar"
有关详细信息,请参阅 documentation
。