Improved, extended, and refactored iteration special forms.
authorTravis Cross <tc@traviscross.com>
Sun, 30 Mar 2008 19:35:12 +0000 (19:35 +0000)
committerTravis Cross <tc@traviscross.com>
Sun, 30 Mar 2008 19:35:12 +0000 (19:35 +0000)
commit6a2ce72d8a5cfa7af9e940969ed3fbf083a87ef7
tree1196a5a193d404952cf5e67429a3899f9d5c0297
parent915342fba4ea71bcc7b2140ca691c6fd4455a6c0
Improved, extended, and refactored iteration special forms.

 * Added support for DO*.

 * DO now does parallel assignment.

 * DO/DO* now correctly support init-forms such as:

     (do (a (b) (c 1) (d 1 (1+ d))) ...)

 * DO/DO*/DOTIMES/DOLIST/DOEACH now support return values via a lambda
   transform.

 * DOEACH now supports implicit key/value destructuring, e.g.:

     (doeach ((key val) arr res) ...)

 * Added labeled-for to facilitate creating labeled for loops.

 * Restructured low level printer operators to better match the
   underlying JS.
src/package.lisp
src/printer.lisp
src/special-forms.lisp