This is the modf Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Sep 15 06:09:25 2024 GMT+0.
The main system appears first, followed by any subsystem dependency.
modf
A SETF like macro for functional programming
Zach Kost-Smith <zachkostsmith@gmail.com>
3 Clause BSD (http://opensource.org/licenses/BSD-3-Clause)
This library simplifies functional programming by making it easier to make new data structures with specified changes in place.
alexandria
(system).
closer-mop
(system).
iterate
(system).
package.lisp
(file).
utils.lisp
(file).
modf.lisp
(file).
rewrite-rules.lisp
(file).
basic.lisp
(file).
modf-def.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
modf/modf.asd
modf/package.lisp
modf/utils.lisp
modf/modf.lisp
modf/rewrite-rules.lisp
modf/basic.lisp
modf/modf-def.lisp
modf/utils.lisp
package.lisp
(file).
modf
(system).
mkstr
(function).
modf/modf.lisp
utils.lisp
(file).
modf
(system).
define-modf-expander
(macro).
define-modf-function
(macro).
define-modf-method
(macro).
define-modf-rewrite
(macro).
fsetf
(macro).
modf
(macro).
modf-eval
(macro).
modf-fn
(macro).
*accessor-heuristics*
(special variable).
*modf-expansions*
(special variable).
*modf-nth-arg*
(special variable).
*modf-rewrites*
(special variable).
*special-modf-forms*
(special variable).
accessor-in
(function).
apply-expression?
(function).
container-arg-n
(function).
expandable?
(function).
expansions-defined?
(function).
find-container
(function).
funcall-expression?
(function).
late-class-reader-inverter
(function).
late-invert
(function).
modf-expand
(function).
modf-fn-defined?
(function).
modf-name
(function).
modf/basic.lisp
rewrite-rules.lisp
(file).
modf
(system).
builder∶common-lisp∶aref
(function).
builder∶common-lisp∶getf
(function).
builder∶common-lisp∶gethash
(function).
builder∶common-lisp∶last
(function).
builder∶common-lisp∶nth
(function).
builder∶common-lisp∶nthcdr
(function).
builder∶common-lisp∶pathname-directory
(method).
builder∶common-lisp∶pathname-name
(method).
builder∶common-lisp∶pathname-type
(method).
builder∶common-lisp∶subseq
(function).
copy-instance
(function).
replace-nth
(function).
replace-nthcdr
(function).
modf/modf-def.lisp
basic.lisp
(file).
modf
(system).
defclass
(macro).
define-modf-for-class-slots
(macro).
define-modf-for-struct-slots
(macro).
defstruct
(macro).
get-modf-reader-definitions
(function).
group
(function).
group-by
(function).
modf-for-class-slots-expander
(function).
modf-for-struct-slots-expander
(function).
Packages are listed by definition order.
modf-def
common-lisp
.
iterate
.
modf
.
defclass
(macro).
define-modf-for-class-slots
(macro).
define-modf-for-struct-slots
(macro).
defstruct
(macro).
get-modf-reader-definitions
(function).
group
(function).
group-by
(function).
modf-for-class-slots-expander
(function).
modf-for-struct-slots-expander
(function).
modf
common-lisp
.
iterate
.
define-modf-expander
(macro).
define-modf-function
(macro).
define-modf-method
(macro).
define-modf-rewrite
(macro).
fsetf
(macro).
modf
(macro).
modf-eval
(macro).
modf-fn
(macro).
*accessor-heuristics*
(special variable).
*modf-expansions*
(special variable).
*modf-nth-arg*
(special variable).
*modf-rewrites*
(special variable).
*special-modf-forms*
(special variable).
accessor-in
(function).
apply-expression?
(function).
builder∶common-lisp∶aref
(function).
builder∶common-lisp∶getf
(function).
builder∶common-lisp∶gethash
(function).
builder∶common-lisp∶last
(function).
builder∶common-lisp∶nth
(function).
builder∶common-lisp∶nthcdr
(function).
builder∶common-lisp∶pathname-directory
(generic function).
builder∶common-lisp∶pathname-name
(generic function).
builder∶common-lisp∶pathname-type
(generic function).
builder∶common-lisp∶subseq
(function).
container-arg-n
(function).
copy-instance
(function).
expandable?
(function).
expansions-defined?
(function).
find-container
(function).
funcall-expression?
(function).
late-class-reader-inverter
(function).
late-invert
(function).
mkstr
(function).
modf-expand
(function).
modf-fn-defined?
(function).
modf-name
(function).
replace-nth
(function).
replace-nthcdr
(function).
Definitions are sorted by export status, category, package, and then by lexicographic order.
Define Modf expansions for class slot accessor and reader methods.
Define a new expander which inverts forms starting with NAME. Your function should return an expansion from EXPR to a form that will build a new object that has NEW-VAL in the place specified by expr. NTH-ARG marks which argument is considered the actual data which will be inverted next.
This macro defines Modf expanders for a class. We can do this given the definition form for the class (much like with DEFINE-MODF-FOR-STRUCT-SLOTS) or the a name of a finalized class.
This macro defines Modf expanders for structure slots when given a structure definition form.
Define a new modf function. It inverts NAME forms by modifying the NTH-ARG term of the arguments of the place form in the MODF macro.
Define a new modf method. It inverts NAME forms by modifying the NTH-ARG term of the arguments of the place form in the MODF macro. This method can specialize on any of ARGS.
Define a new rewrite rule. If a form starting with NAME is encountered, call the defined function to return a form that we can deal with (i.e. one defined via DEFINE-MODF-EXPANDER, DEFINE-MODF-FUNCTION, and DEFINE-MODF-METHOD).
Define a new structure with Modf expansions for slots.
Make a new object (which may use some of the old object) such that PLACE
evaluates to VALUE.
MORE should have the form...
MORE : NIL
| (TEMPORARY-BINDING ANOTHER-MODF-PLACE ANOTHER-VALUE . MORE)
Use it to specify a temporary binding for the new object created which will be used in the subsequence MODF-PLACE NEW-VALUE pairs until the end of the MODF form.
Expand to the defined Modf function. Basically, (MODF-FN SYM) is the functional analog of #’(SETF SYM).
This controls whether we should make educated guesses regarding inverting structure slot readers. For strictly correct behavior, set this to nil.
Holds what argument to try to invert next.
This is a generic catch as much as you can function. It attempts to identify
class accessor functions, structure accessor functions, and provides late MODF
defined functions (i.e. you used MODF before using DEFINE-MODF-FUNCTION).
All of this functionality is less than ideal efficiency wise, but working over efficiency any day, right? If you want better performance, define all of you functions ahead of time.
Make a symbol name that depends on symbol name and package, but is very unlikely to be chosen by anyone. This is for avoiding collisions for my benefit, not the users, as these symbols belong to the MODF package.
Jump to: | A B C D E F G L M R |
---|
Jump to: | A B C D E F G L M R |
---|
Jump to: | *
S |
---|
Jump to: | *
S |
---|
Jump to: | B F M P R S U |
---|
Jump to: | B F M P R S U |
---|