1 % Copyright (C) 2008, 2009, 2010, 2012, 2014, 2018 Bert Burgemeister
3 % Permission is granted to copy, distribute and/or modify this
4 % document under the terms of the GNU Free Documentation License,
5 % Version 1.2; with no Invariant Sections, no Front-Cover Texts and
6 % no Back-Cover Texts. For details see file COPYING.
9 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17 (
\VAR{foo
\hspace{.5ex
}}
21 (
\kwd{:conc-name
} \Op{\NEV{\VAR{slot-prefix
}}\DF{\VAR{foo
}\LIT{-
}}})
}{.
}\\
25 \OP{\NEV{\VAR{maker
}}\DF{\LIT{MAKE-
}\VAR{foo
}}\text{ }
26 \Op{(
{\OPn{\NEV{\VAR{ord-$
\lambda$
}}}})
}})
}{\
}^
{\!\!*
}}\\
30 \Op{\NEV{\VAR{copier
}}\DF{\LIT{COPY-
}\VAR{foo
}}})
}{.
}\\
31 (
\kwd{:include
\hspace{.5ex
}} \NEV{\VAR{struct
}}% disabled to save space %\text{ }
34 (
\NEV{\VAR{slot
}}\text{\hspace{.5ex
}} \Op{\VAR{init
}% disabled to save space %\text{ }
36 \kwd{:type
\hspace{.5ex
}} \NEV{\VAR{sl-type
}}\\
37 \kwd{:read-only
} \NEV{\VAR{b
}}}{\
}}})\\
40 (
\kwd{:type
} \xorGOO{\kwd{list
}\\
42 (
\kwd{vector
}\NEV{\VAR{type
}})
}{\
}})
\text{ }
43 \Op{(
\kwd{:initial-offset
} \NEV{\VAR{n
}})
}\\
45 (
\kwd{:print-object
} \Op{\NEV{\VAR{o-printer
}}})\\
46 (
\kwd{:print-function
} \Op{\NEV{\VAR{f-printer
}}})
52 (
\kwd{:predicate
} \Op{\NEV{\VAR{p-name
}}\DF{\VAR{foo
}\LIT{-P
}}})
}{.
}
59 (
\VAR{slot
} \Op{\VAR{init
}\text{ }
61 \kwd{:type
} \NEV{\VAR{slot-type
}}\\
62 \kwd{:read-only
} \NEV{\VAR{bool
}}
67 Define structure
\retval{\VAR{foo
}} together with functions
68 \LIT{MAKE-
}\VAR{foo
},
\LIT{COPY-
}\VAR{foo
} and
69 \VAR{foo
}\LIT{-P
}; and
\kwd{setf
}able accessors
70 \VAR{foo
}\LIT{-
}\VAR{slot
}. Instances are of class
\VAR{foo
} or, if
71 \kwd{defstruct
} option
\kwd{:type
} is given, of the specified type.
73 created by (
\LIT{MAKE-
}\VAR{foo
} \Goos{\kwd{:
}\VAR{slot
}
74 \VAR{value
}}) or, if
\VAR{ord-$
\lambda$
} (see
75 page
\pageref{section:Functions
}) is given, by (
\VAR{maker
}
76 \OPn{\VAR{arg
}} \Goos{\kwd{:
}\VAR{key
} \VAR{value
}}). In the latter
77 case,
\VAR{arg
}s and
\kwd{:
}\VAR{key
}s correspond to the positional
78 and keyword parameters defined in
\VAR{ord-$
\lambda$
} whose
79 \VAR{var
}s in turn correspond to
\VAR{slot
}s.
80 \kwd{:print-object
}/
\kwd{:print-function
} generate a
81 \GFU{print-object
} method for an instance
\VAR{bar
} of
\VAR{foo
}
82 calling (
\VAR{o-printer
} \VAR{bar
} \VAR{stream
}) or (
\VAR{f-printer
}
83 \VAR{bar
} \VAR{stream
} \VAR{print-level
}), respectively.
84 If
\kwd{:type
} without
\kwd{:named
} is given, no
\VAR{foo
}\LIT{-P
}
88 \IT{(
\FU*
{COPY-STRUCTURE
} \VAR{structure
})
}
90 Return
\retval{copy of
\VAR{structure
}} with shared slot values.
99 %%% TeX-master: "clqr"