Several of Loopless' utilities have ‘*’ as a suffix.
This is, of course, because Loopless is an ALL-STAR library!
Joking aside, here's a full breakdown of why for each operator:
while. These are also “clashy” names that other utility libraries might use (but maybe I'm just paranoid).
Anyway, the semantics differ between the loop keywords and these new operators so it makes sense to give them a different name. Just adding a ‘*’ is short and simple.
Also, the binding of variables is done sequentially as in
As a minor bonus, adding the suffix to
for is consistent with
its local function
step*, which itself cannot use just
step as a name.
step*local function is used inside
for*to step the variables. Common Lisp already provides a
stepmacro, which is an unrelated operator to aid debugging.
Here again, the semantics differ (this time wildly) so using a different name is appropriate.