arc> (noisy-each 4 x "1234" (pr x)) 1234 t
(noisy-each 4 x "12341234" (pr x)) should return: 1234.1234 correct?
But anyway, "123.4123" appears as a bug for me too.
The "problem" is that ,@body is executed after the 'when clause that prints (or not) a dot. In the case of 'pr, the order actually makes a difference.
A fix. Inverse 'when and ,@body in the 'each instruction:
(each ,var ,val ,@body (when (multiple (++ ,gc) ,gn) (pr ".") (flushout)))
arc> (noisy-each 4 x "12341234" (pr x)) 1234.1234. ; this I think is correct t
-----