I will take a look at it when I get home tonight. My initial though, without having read your post, is that: Yes you can do it in Java but it won't be pretty.
-- Janus Den 07/12/2007 kl. 3.28 skrev Martin Geisler: > Martin Geisler <[EMAIL PROTECTED]> writes: > > Hi Janus -- I'm CCing you since I you might be able to comment on the > use of Java in my example. This is a followup to this post in which I > created a minimal implementation of the Twisted Deferred class: > > http://article.gmane.org/gmane.comp.cryptography.viff.devel/26 > >> At a SIMAP meeting yesterday, it was discussed if Python was a >> requirement for Twisted of if it could be done in any language >> (Java). > >> From my example implementation of a Share, it should be apparent that > one needs a language where it is possible to pass around functions (or > pointers to functions) for this style of programming to be pleasant. > > Python allows this directly and so does C and C++. Of course the > functional languages (Haskell, ML, etc...) allows you to do this too. > > In Java I think you'll have to do something different -- there are no > function pointers in that language as far as I know. Instead I believe > people normally define an interface like this: > > interface Callback { > public Object execute(Object); > } > > and then define callbacks that implement the interface: > > class AddByTwo implements Callback { > public Object execute(Object i) { > return (Integer)i + 2; > } > } > > (I haven't tested that code, but I think that recent versions of Java > allows implicit boxing and unboxing of ints.) > > If there is a better way to do callbacks in Java, then I would of > course be interested to see it! > > Or maybe one would implement this completely different in Java... > instead of building up the execution tree implicitly, one would > probably represent it as a concrete data structure and then evaluate > this, starting with the leaf nodes. > > -- > Martin Geisler _______________________________________________ viff-devel mailing list (http://viff.dk/) viff-devel@viff.dk http://lists.viff.dk/listinfo.cgi/viff-devel-viff.dk