diff options
Diffstat (limited to 'anaphora.lisp')
-rw-r--r-- | anaphora.lisp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/anaphora.lisp b/anaphora.lisp new file mode 100644 index 0000000..13bb980 --- /dev/null +++ b/anaphora.lisp @@ -0,0 +1,26 @@ +(in-package #:gtwiwtg.anaphora) + +(defmacro afor (generator &body body) + "Anaphoric FOR. Binds the values produced by GENERATOR to the variable IT. + +Example: + +> (afor (times 3) (print it)) +0 +1 +2 + +" + `(for it ,expr ,@body)) + +(defmacro afold (init generator update) + "Anaphoric FOLD. Binds the values produced by GENERATOR to IT, and +binds the accumulating variable to ACC. + +Example: + +> (afold 0 (times 10) (+ acc it)) +45 + +" + `(fold (acc ,init) (it ,expr) ,update)) |