[plt-scheme] Possible bug in for/fold
Noel wrote:
> I suppose I had never run into the difference between returning no
> values and returning void.
This is an oddity that only became clear to me as a result of reading
this post - obvious in hind-sight but I'd simply never thought about
it before. I've always thought of returning void as meaning "I'm not
returning a value" rather than "I'm returning a single value but feel
free to ignore it."
I was going to suggest adding a paragraph like the following to the
docs:
"When zero accumulators are specified, @scheme[for/fold] expects the
body code to return zero values. This is the equivalent of writing
@scheme[(values)] rather than writing @scheme[(void)], which is the
default return value of most Scheme forms that don't have a specific
return value."
However, having zero accumulators is an odd corner case that isn't in
the spirit of for/fold, so I think this paragraph might confuse more
people that it helps. Noel's for/fold was generated by a macro, which
explains how the problem arose, but most people won't be doing this.
I guess I'm writing this post to see whether other people think the
same thing.
-- Dave