How to see doc string for a defparameter, defconstant, or defvar?
Asked Answered
L

1

7

Using common lisp you can add many docs strings for example:

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

so finally I can read the doc string back, but with symbols and variables I cannot get it back with documentation:

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

So it is wrong the type 'symbol, or which type I would use. I'm not sure what really happens

I'm using: SBCL 1.3.10

Lundin answered 18/10, 2016 at 15:31 Comment(0)
W
12

Let's have a look at the doc of 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.
[...]"

And so:

CL-USER> (documentation 'bar 'variable)
"doc string for bar"

See documentation for details.

Wolof answered 18/10, 2016 at 15:42 Comment(1)
so it is a variable, thanks I was thinking that it was a symbolLundin

© 2022 - 2024 — McMap. All rights reserved.