doplus is a high-level, lispy, extensible iteration construct for Common Lisp. It is a replacement for the LOOP macro and mostly tries to solve the same problem as iterate.

It was written by Alessio Stalla. It is available as open source from Quicklisp.


License: GPL-3.0-or-later

Compared to iterate, it is designed to avoid the use of a code walker in its implementation. Also, it has a more traditional syntax inspired by that of DO, hence the name; i.e., it clearly separates the head of the form (which controls iteration) from the body.

Iteration clauses in the head are simple macros; users can write their own very easily in terms of the existing ones, or using a lower-level API for complex cases. The few body-local macros have dummy top-level definitions. These two characteristics make doplus very SLIME-friendly both for built-in operators and user-defined ones (provided users follow the same guidelines).

language extension