[geeks] Lisps with dynamic-wind?

der Mouse mouse at Rodents-Montreal.ORG
Mon Jan 25 02:36:48 CST 2010


I've got a mildly arcane question for the Lisp geeks among us: are
there any known implementations which (a) support continuations, in
particular dynamic-wind or something like it, and (b) are not
Scheme-based?  I did a little websearching and didn't find any, but my
websearching skills are rather poor, so I think that doesn't mean much.

The reason I ask is that I'm working on one and I'm trying to decide
whether dynamic-wind should look like (to use a rudimentary exmaple)

(dynamic-wind (push 'in list) (do-something) (push 'out list))

or

(dynamic-wind '(push 'in list) '(do-something) '(push 'out list))

The former is more natural for common uses, but the latter is more
flexible in that anything evaluatable may be passed, including forms
computed at run time (which, under the former paradigm, requires
assembling a (dynamic-wind ...) form and evaling it).

Scheme doesn't help much, since it makes lambda-forms directly
executable rather than making them callable functions but not
executable things in their own right.  This means that it's more like
the latter in terms of the implementation but more like the former in
terms of the programmer-visible interface, and my question amounts to
trying to decide which is more important.  (The Lisp engine I'm working
with does not share this property with Scheme.)

/~\ The ASCII				  Mouse
\ / Ribbon Campaign
 X  Against HTML		mouse at rodents-montreal.org
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B



More information about the geeks mailing list