On Thu, 2 Dec 2010, Peter Seibel wrote: > My taste tells me that's an over-clever idiom and should not be > used. If it's not clear that a function is for-effect without > (values) you've already lost.
I confess that I have used (values) before, not only to indicate that a function was for effect only, but also to prevent any implementation detail from leaking out. I also like m-v-l's behavior when receiving (values). (I also confess that I haven't been consistent in this use.) On the other hand, I agree with Peter that it can be somewhat ugly. Maybe some alternatives, based on (values)? (defun f () (for-effect (setq *foo* 'bar))) Or, how about: (defeffect f () (setq *foo* 'bar)) for-effect and defeffect could have the added benefit of guaranteeing that *no* return path will return a value. -David _______________________________________________ pro mailing list pro@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/pro