@giuliolunati requested a counting-down version of REPEAT, originally suggesting REPEAT/BACK. I said that didn't seem particularly clear to me, and suggested COUNT-DOWN instead:
>> count-down i 3 [print i]
3
2
1
I might have suggested calling it COUNTDOWN un-hyphenated....except it seems it would go nicely with an upward counting version...and COUNTUP doesn't look right... it needs the hyphen:
>> count-up i 3 [print i]
1
2
3
This touches upon an old gripe of mine, which is that I felt like there was nothing about the name REPEAT which suggested it would be modifying a variable. The idea that LOOP would be arity 2, and REPEAT would be arity 3, made no intuitive sense to me--I thought if anything, REPEAT should be the one that did things N times with no parameterization:
>> repeat 3 [print "no parameter, just repeat"]
no parameter, just repeat
no parameter, just repeat
no parameter, just repeat
Years ago I'd made that suggestion because I wanted to repurpose the word LOOP. The concept was that LOOP could become to iteration what PARSE is to parsing. It was pointed out to me by @JacobGood1 that LOOP is what LISP uses for their "looping dialect".
It seems to me that with COUNT-UP and COUNT-DOWN, we have a pretty strong justification for why it has a parameter to update as it counts. Because if it didn't have a parameter, there'd be no difference between counting up and counting down.
Hyphenation is always kind of a bummer, but for what it's worth there were only 4 or 5 instances of REPEAT in the Ren-C codebase...between Mezzanines and make scripts and everything else. It may not be the biggest deal in the world. I think retaking the shortest word LOOP for higher purposes is pretty important by comparison.
Sound good?