Sharpsign S (ANSI and GNU Common Lisp Document)

Next: Sharpsign P, Previous: Sharpsign A, Up: Sharpsign

#### 2.4.8.14 Sharpsign S

`#s(name slot1 value1 slot2 value2 ...)` denotes a structure. This is valid only if name is the name of a structure type already defined by defstruct and if the structure type has a standard constructor function. Let cm stand for the name of this constructor function; then this syntax is equivalent to

     #.(cm keyword1 'value1 keyword2 'value2 ...)

where each keywordj is the result of computing

     (intern (string slotj) (find-package 'keyword))

The net effect is that the constructor function is called with the specified slots having the specified values.

(This coercion feature is deprecated; in the future, keyword names will be taken in the package they are read in, so symbols that are actually in the `KEYWORD` package should be used if that is what is desired.)

Whatever object the constructor function returns is returned by the `#S` syntax.

For information on how the Lisp printer prints structures, see Printing Structures.