Awesome—thanks for everyone's answers; I think I'll go with delay/
force. What I'm a little worried about is the caching. After a calling
of "alt" finishes, what happens to all those Delay objects and their
cached values? Are they garbage-collected, or will they remain
indefinitely? Should I worry?

On Jan 12, 6:13 am, MikeM <michael.messini...@invista.com> wrote:
> Not a macro, but does what you want:
>
> (defn alt [& functions]
>   (fn [tokens]
>     (some #((force %) tokens) functions)))
>
> ;define sub-functions the same way
>
> (defn a-meta-meta-function [c]
>   (alt (delay (sub-function1 c)) (delay (sub-function2 c)) (delay (sub-
> function3 c))))
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to