Dear Clojuratica Users,
Clojuratica v0.96 was released today.
The new version has some very neat stuff:
-- A full Mathematica interface for calling Clojure. The previous version
had only a Clojure-to-Mathematica interface. I'm very happy with the syntax
of the Mathematica-to-Clojure interface and encourage you to check it out.
It lets you call Clojure methods seamlessly, without changing anything about
your Clojure code and with only the sweetest of syntactic sugar on the
Mathematica side. To call the static method of a Clojure class, with full
conversion of arguments and return values, you need only say:
Clojure@Classname`methodname[argument1, argument2, ...]
Instance methods are:
Clojure@Objectname@methodname[argument1, argument2, ...]
All data-type conversion is completely hidden. From the programmer's
perspective it's nearly one big programming language.
-- First-class Mathematica functions in Clojure. Now you can write
functions in the Mathematica language and use them in Clojure just as if
they were Clojure functions. This is powerful business. You can map across
them, compose them... whatever you want. Calls to the functions are handled
transparently, behind the scenes by Mathematica. The calls are parallelized
automagically whenever they originate from multiple Clojure threads. The
philosophy is: Write your functions in whichever language fits the task
better. Calls to either language look identical from the programmer's
-- Completely re-written internals. Data-structure conversion is fast and
elegant now. Transients will make it even faster one day.
-- A nice flag-based system for passing options to functions on the Clojure
side of the interface.
Please take a look at the new tutorial available on the web site. This is a
completely re-done tutorial documenting an army of new features.
I plan to wait two or three days before announcing the release to the
Clojure and Mathematica groups. I would really appreciate it if folks in
this group would take a look at the new tutorial, give it a spin, and offer
up any suggestions. I am open to suggestions on syntax, implementation,