1 \input texinfo @c -*-texinfo-*-
3 @setfilename alexandria.info
4 @settitle Alexandria Manual
7 @settitle Alexandria Manual -- draft version
10 @dircategory Software development
12 * alexandria: Common Lisp utilities.
16 Alexandria software and associated documentation are in the public
20 Authors dedicate this work to public domain, for the benefit of the
21 public at large and to the detriment of the authors' heirs and
22 successors. Authors intends this dedication to be an overt act of
23 relinquishment in perpetuity of all present and future rights under
24 copyright law, whether vested or contingent, in the work. Authors
25 understands that such relinquishment of all rights includes the
26 relinquishment of all rights to enforce (by lawsuit or otherwise)
27 those copyrights in the work.
29 Authors recognize that, once placed in the public domain, the work
30 may be freely reproduced, distributed, transmitted, used, modified,
31 built upon, or otherwise exploited by anyone for any purpose,
32 commercial or non-commercial, and in any way, including by methods
33 that have not yet been invented or conceived.
36 In those legislations where public domain dedications are not
37 recognized or possible, Alexandria is distributed under the following
41 Permission is hereby granted, free of charge, to any person
42 obtaining a copy of this software and associated documentation files
43 (the "Software"), to deal in the Software without restriction,
44 including without limitation the rights to use, copy, modify, merge,
45 publish, distribute, sublicense, and/or sell copies of the Software,
46 and to permit persons to whom the Software is furnished to do so,
47 subject to the following conditions:
49 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
50 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
51 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
52 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
53 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
54 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
55 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
61 @title Alexandria Manual
62 @subtitle draft version
64 @c The following two commands start the copyright page.
66 @vskip 0pt plus 1filll
75 @include include/ifnottex.texinfo
78 @comment node-name, next, previous, up
85 * Data and Control Flow::
99 @comment node-name, next, previous, up
102 @include include/macro-alexandria-ensure-gethash.texinfo
103 @include include/fun-alexandria-copy-hash-table.texinfo
104 @include include/fun-alexandria-maphash-keys.texinfo
105 @include include/fun-alexandria-maphash-values.texinfo
106 @include include/fun-alexandria-hash-table-keys.texinfo
107 @include include/fun-alexandria-hash-table-values.texinfo
108 @include include/fun-alexandria-hash-table-alist.texinfo
109 @include include/fun-alexandria-hash-table-plist.texinfo
110 @include include/fun-alexandria-alist-hash-table.texinfo
111 @include include/fun-alexandria-plist-hash-table.texinfo
113 @node Data and Control Flow
114 @comment node-name, next, previous, up
115 @chapter Data and Control Flow
117 @include include/macro-alexandria-define-constant.texinfo
118 @include include/macro-alexandria-destructuring-case.texinfo
119 @include include/macro-alexandria-ensure-functionf.texinfo
120 @include include/macro-alexandria-multiple-value-prog2.texinfo
121 @include include/macro-alexandria-named-lambda.texinfo
122 @include include/macro-alexandria-nth-value-or.texinfo
123 @include include/macro-alexandria-if-let.texinfo
124 @include include/macro-alexandria-when-let.texinfo
125 @include include/macro-alexandria-when-let-star.texinfo
126 @include include/macro-alexandria-switch.texinfo
127 @include include/macro-alexandria-cswitch.texinfo
128 @include include/macro-alexandria-eswitch.texinfo
129 @include include/macro-alexandria-whichever.texinfo
130 @include include/macro-alexandria-xor.texinfo
132 @include include/fun-alexandria-disjoin.texinfo
133 @include include/fun-alexandria-conjoin.texinfo
134 @include include/fun-alexandria-compose.texinfo
135 @include include/fun-alexandria-ensure-function.texinfo
136 @include include/fun-alexandria-multiple-value-compose.texinfo
137 @include include/fun-alexandria-curry.texinfo
138 @include include/fun-alexandria-rcurry.texinfo
141 @comment node-name, next, previous, up
144 @include include/type-alexandria-proper-list.texinfo
145 @include include/type-alexandria-circular-list.texinfo
147 @include include/macro-alexandria-appendf.texinfo
148 @include include/macro-alexandria-nconcf.texinfo
149 @include include/macro-alexandria-remove-from-plistf.texinfo
150 @include include/macro-alexandria-delete-from-plistf.texinfo
151 @include include/macro-alexandria-reversef.texinfo
152 @include include/macro-alexandria-nreversef.texinfo
153 @include include/macro-alexandria-unionf.texinfo
154 @include include/macro-alexandria-nunionf.texinfo
156 @include include/macro-alexandria-doplist.texinfo
158 @include include/fun-alexandria-circular-list-p.texinfo
159 @include include/fun-alexandria-circular-tree-p.texinfo
160 @include include/fun-alexandria-proper-list-p.texinfo
162 @include include/fun-alexandria-alist-plist.texinfo
163 @include include/fun-alexandria-plist-alist.texinfo
164 @include include/fun-alexandria-circular-list.texinfo
165 @include include/fun-alexandria-make-circular-list.texinfo
166 @include include/fun-alexandria-ensure-car.texinfo
167 @include include/fun-alexandria-ensure-cons.texinfo
168 @include include/fun-alexandria-ensure-list.texinfo
169 @include include/fun-alexandria-flatten.texinfo
170 @include include/fun-alexandria-lastcar.texinfo
171 @include include/fun-alexandria-setf-lastcar.texinfo
172 @include include/fun-alexandria-proper-list-length.texinfo
173 @include include/fun-alexandria-mappend.texinfo
174 @include include/fun-alexandria-map-product.texinfo
175 @include include/fun-alexandria-remove-from-plist.texinfo
176 @include include/fun-alexandria-delete-from-plist.texinfo
177 @include include/fun-alexandria-set-equal.texinfo
178 @include include/fun-alexandria-setp.texinfo
181 @comment node-name, next, previous, up
184 @include include/type-alexandria-proper-sequence.texinfo
186 @include include/macro-alexandria-deletef.texinfo
187 @include include/macro-alexandria-removef.texinfo
189 @include include/fun-alexandria-rotate.texinfo
190 @include include/fun-alexandria-shuffle.texinfo
191 @include include/fun-alexandria-random-elt.texinfo
192 @include include/fun-alexandria-emptyp.texinfo
193 @include include/fun-alexandria-sequence-of-length-p.texinfo
194 @include include/fun-alexandria-length-equals.texinfo
195 @include include/fun-alexandria-copy-sequence.texinfo
196 @include include/fun-alexandria-first-elt.texinfo
197 @include include/fun-alexandria-setf-first-elt.texinfo
198 @include include/fun-alexandria-last-elt.texinfo
199 @include include/fun-alexandria-setf-last-elt.texinfo
200 @include include/fun-alexandria-starts-with.texinfo
201 @include include/fun-alexandria-starts-with-subseq.texinfo
202 @include include/fun-alexandria-ends-with.texinfo
203 @include include/fun-alexandria-ends-with-subseq.texinfo
204 @include include/fun-alexandria-map-combinations.texinfo
205 @include include/fun-alexandria-map-derangements.texinfo
206 @include include/fun-alexandria-map-permutations.texinfo
209 @comment node-name, next, previous, up
212 @include include/fun-alexandria-read-file-into-string.texinfo
213 @include include/fun-alexandria-read-file-into-byte-vector.texinfo
216 @comment node-name, next, previous, up
217 @chapter Macro Writing
219 @include include/macro-alexandria-once-only.texinfo
220 @include include/macro-alexandria-with-gensyms.texinfo
221 @include include/macro-alexandria-with-unique-names.texinfo
222 @include include/fun-alexandria-featurep.texinfo
223 @include include/fun-alexandria-parse-body.texinfo
224 @include include/fun-alexandria-parse-ordinary-lambda-list.texinfo
227 @comment node-name, next, previous, up
230 @include include/fun-alexandria-ensure-symbol.texinfo
231 @include include/fun-alexandria-format-symbol.texinfo
232 @include include/fun-alexandria-make-keyword.texinfo
233 @include include/fun-alexandria-make-gensym.texinfo
234 @include include/fun-alexandria-make-gensym-list.texinfo
235 @include include/fun-alexandria-symbolicate.texinfo
238 @comment node-name, next, previous, up
241 @include include/type-alexandria-array-index.texinfo
242 @include include/type-alexandria-array-length.texinfo
243 @include include/fun-alexandria-copy-array.texinfo
246 @comment node-name, next, previous, up
249 @include include/type-alexandria-string-designator.texinfo
250 @include include/macro-alexandria-coercef.texinfo
251 @include include/fun-alexandria-of-type.texinfo
252 @include include/fun-alexandria-type-equals.texinfo
255 @comment node-name, next, previous, up
258 @include include/macro-alexandria-maxf.texinfo
259 @include include/macro-alexandria-minf.texinfo
261 @include include/fun-alexandria-binomial-coefficient.texinfo
262 @include include/fun-alexandria-count-permutations.texinfo
263 @include include/fun-alexandria-clamp.texinfo
264 @include include/fun-alexandria-lerp.texinfo
265 @include include/fun-alexandria-factorial.texinfo
266 @include include/fun-alexandria-subfactorial.texinfo
267 @include include/fun-alexandria-gaussian-random.texinfo
268 @include include/fun-alexandria-iota.texinfo
269 @include include/fun-alexandria-map-iota.texinfo
270 @include include/fun-alexandria-mean.texinfo
271 @include include/fun-alexandria-median.texinfo
272 @include include/fun-alexandria-variance.texinfo
273 @include include/fun-alexandria-standard-deviation.texinfo