On 3 December 2010 01:00, Daniel Weinreb dlw@itasoftware.com wrote:
The question is, is it good style? That is, ought we consider it something to be recommended?
CMUCL (and by extension SBCL) code does this quite a lot. I've never been a huge fan -- partially because the style subtly encourages side-effects where function approach would work, and partly because it tends to make debugging harder.
Most of the time there's thing you can sensibly return -- which makes output from TRACE more useful, even if 90% of the callers end up discarding it.
If there is no sensible return value beyond (VALUES) or NIL, then I do find (VALUES) a good obvious signal that the function is being used for effect only, and occasionally it _does_ make debugging easier by killing tail-calls.
So, a mixed bag for me.
Cheers,
-- Nikodemus