>>>> "Clemens" == Clemens Heitzinger
<cheitzin(a)rainbow.studorg.tuwien.ac.at> writes:
Clemens> sperber(a)informatik.uni-tuebingen.de (Michael Sperber [Mr. Preprocessor])
writes:
Clemens> On the other hand, I don't think that in Scheme you can say
Clemens> you want this and that variable *not* to be hygienic.
>
> No, but (to quote Craig in this discussion :-}) why would you want
> this?
Clemens> One example is LOOP-FINISH. From the HyperSpec:
Clemens> ----------------------------------------------------------------------
Clemens> The loop-finish macro can be used lexically within an extended loop
Clemens> form to terminate that form normally. That is, it transfers control
Clemens> to the loop epilogue of the lexically innermost extended loop form.
Clemens> This permits execution of any finally clause (for effect) and the
Clemens> return of any accumulated result.
Clemens> Examples:
Clemens> ;; Terminate the loop, but return the accumulated count.
Clemens> (loop for i in '(1 2 3 stop-here 4 5 6)
Clemens> when (symbolp i) do (loop-finish)
Clemens> count i)
Clemens> => 3
Clemens> ----------------------------------------------------------------------
Clemens> This is defined in the CL standard and I find it quite useful.
Not that I claim to understand all the ramifications, but what makes
this macro non-hygienic? You've posted a description, but no
definition.
But then of course, in Scheme idiomatics, you wouldn't even need a
macro to define this kind of thing ...
--
Cheers =8-} Chipsy
Friede, Völkerverständigung und überhaupt blabla