[pro] (values) for for-effect functions

Ben Hyde bhyde at pobox.com
Thu Dec 2 23:38:59 UTC 2010


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





More information about the pro mailing list