Thanks again to all for the help, clj-cont now supports the new and dot
special forms.  This also means that dosync, doto, .. all work perfectly
fine from within a with-call-cc form.
You can now write things like this:
(let [cc (atom nil)]
   [(with-call-cc
      (. (let-cc k
   (reset! cc k)
   (k "Hello"))
 substring
 2))
    (@cc "Goodbye")])

-> ["llo" "odbye"]

One caveat is that you can't use the let-cc form within a dosync block
that's embedded in a with-call-cc. This is probably for the best anyway.
Also since the dot and new forms are being transformed into a version that
relies on reflection you can't expect this code to be super performant.
 That may or may matter depending on your use case ;)

On Sun, Mar 22, 2009 at 5:28 PM, David Nolen <dnolen.li...@gmail.com> wrote:

> That was it! At one point I knew these things. Thanks much.
>
>
> On Sun, Mar 22, 2009 at 2:18 PM, Eric Tschetter <eched...@gmail.com>wrote:
>
>>
>> > (let [myref (ref {})]
>> >   (dot
>> >    clojure.lang.LockingTransaction
>> >    (list 'runInTransaction (fn [] (commute myref assoc :mykey
>> :myval)))))
>> > I'm getting a instance method not found exception which seems odd. I
>> looked
>> > at LockingTransaction.java and I see that runInTransaction does in fact
>> take
>> > Callable, and fn's are Callable.  Any thoughts?
>>
>> I haven't double checked the clojure code, but it looks like you are
>> trying to call a static method, not an instance method, and that is
>> what is causing the exception.
>>
>> --Eric Tschetter
>>
>> >>
>>
>

--~--~---------~--~----~------------~-------~--~----~
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