Artifact 79a66838faf5e809701d9ef8c65e318a3501526157e8d10d3af43dfd58af71e4:
- File
psl-1983/doc/common-lisp-functions.txt
— part of check-in
[eb17ceb7f6]
at
2020-04-21 19:40:01
on branch master
— Add Reduce 3.0 to the historical section of the archive, and some more
files relating to version sof PSL from the early 1980s. Thanks are due to
Paul McJones and Nelson Beebe for these, as well as to all the original
authors.git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/historical@5328 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 4610) [annotate] [blame] [check-ins using] [more...]
Description of columns: E - Existing PSL function * means the function needs no change, X means it requires an extension C - Name conflicts with existing PSL function O - Uses &optional and/or &rest arguments N - Same as a PSL function with this name S - Simple to implement * means it should be easy to implement (given optional arguments and the feature mentioned in column F), U means it's in the USEFUL package, C means it's in the COMMON package, though perhaps as a macro when it should be a function D - Difficult to implement A hard feature or large effort is required to add it, such as multiple values F - Feature needed A feature which does not currently exist in PSL is needed Comments appear on the line FOLLOWING the function name. E C O N S D F typep * * subtypep * null * symbolp idp atom * consp pairp listp * numberp * integerp fixp rationalp * rationals floatp * complexp * complex #s characterp * stringp * vectorp X true for all vector types arrayp * arrays functionp * subrp codep closurep * closures eq * eql eqn equal * equalp * * not * and * or * quote * function X must return a lexical closure for a lambda closure * closures symeval valuecell fsymeval * boundp C fboundp C macro-p C special-form-p * setq * psetq U set * fset * makunbound * fmakunbound remd setf U swapf * exchf * apply * funcall * U funcall* * C progn * prog1 U prog2 X let U let* U progv * flet * local functions labels * local functions macrolet * local functions cond * if U when U unless U case * PSL case is much less general, using only #s typecase * type classes block * block tags return X no restriction on placement return-from * block tags do UX takes an optional block tag do* UX takes an optional block tag dolist * dotimes * mapcar X * takes more than one list maplist X * takes more than one list mapc X * takes more than one list, returns first list as value mapl * * mapcan X * takes more than one list mapcon X * takes more than one list prog X variable initialization and optional block tag prog* * go X no restriction on placement values * * multiple values values-list * " multiple-value-list * " mvcall * " mvprog1 * " multiple-value-bind * " multiple-value * " catch * * catch-all * unwind-all * unwind-protect * throw * macro * defmacro UX should parse &keywords displace * macroexpand * macroexpand-1 * declare * requires some hair in the compiler to use declarations property lists must be represented as alternating indicator/value getpr * get has optional "instead-of-nil" value putpr put rempr remprop plist prop getf * * has optional "instead-of-nil" value putf * remf * get-properties * map-properties * get-pname id2string samepnamep * make-symbol newid copysymbol * * gensym X * optional counter or prefix gentemp * * symbol-package * packages make-package * * packages package * " package-name * " begin-package * " end-package * " intern X * " takes optional package name remob X * " takes optional package name internedp * internp " takes optional package name externalp * * " export * * " unexport * * " import * * " shadow * * " use * * " provide * " require * * " package-use-conflicts * * do-symbols * pkgs, blk tags do-external-symbols * pkgs, blk tags do-internal-symbols * pkgs, blk tags do-all-symbols * pkgs, blk tags zerop X true for complex zero plusp * minusp * oddp * evenp * = * * /= * * < * * > * * <= * * >= * * max * should be function, not macro min * should be function, not macro fuzzy= * * fuzziness * + * * - * * * * * / * * 1+ add1 1- sub1 1+ and 1- can't be scanned as IDs with the current PSL scanner incf U decf U conjugate * complex #s gcd * * cplx, rationals lcm * * cplx, rationals ....exponetial, logarithmic and trigonometric functions float X * takes optional "other" floating point #, supposed to use that type rational * rationals rationalize * * rationals numerator * rationals denominator * rationals