On Dec 2, 2010, at 6:00 PM, Daniel Weinreb wrote:
In case these terms are too old for anyone to know them, we used to use the phrase "for effect" to mean a function that was called for the sake of its side-effects, ...
In some code I have seen, the author of the code has written (values) at the end of an implied-progn body. The purpose, pretty clearly, is to signal the reader of the code that the function was purely for-effect, i.e. that the returned value does not mean anything.
We called this defun-void http://j.mp/hnqGuk in thinlisp. Our goal was to assure we could compile into a C function who's return type was void. But I came to like how it documented the intent, relieved readers of having to puzzle out the return value contract, etc. Our defun-void functions returned a single bogus value. This is the kind of thing I have always assumed i could do with declare. If only I was clever enough and patient enough to get it to work across implementations. But one of the reasons thinlisp isn't a going concern at this instant is the clever things we tried to do with declare. - ben