Wie bereits erwähnt, können Sie auf Clojure-Klassen von Groovy via Vorkompilierung zugreifen.
Sie können die meisten gängigen Scripting Sprachen über Java 6 Scripting API auch, obwohl Scala und Clojure nicht offiziell unterstützt werden. Hier sind einige Beispiele von Groovy:
http://groovy.codehaus.org/JSR-223+access+to+other+JVM+languages
Sie auch Zugriff auf Clojure der Klassen von Groovy erhalten können, beispielsweise (Für Groovy 1.7 Snapshot):
@Grab(group='org.clojure', module='clojure', version='1.0.0')
import clojure.lang.*
def ss = StringSeq.create('The quick brown fox')
def done = false
while (!done) {
println ss.first()
ss = ss.next()
done = !ss
}
Oder interagieren ein neues Verfahren über die Schaffung (wieder für Groovy 1.7 Snapshot):
@Grab(group='org.clojure', module='clojure', version='1.0.0')
import clojure.lang.Script
def src = new File('temp.clj')
src.text = '''
(defn factorial [n]
(if (< n 2)
1
(* n (factorial (- n 1)))))
(println (factorial 4))
'''
def path = System.getProperty('user.home') + '/.groovy/grapes/org.clojure/clojure/jars/clojure-1.0.0.jar'
new AntBuilder().with {
java(classname:Script.name, classpath:path) {
arg(value:src.path)
}
}
Es gibt auch ein Clojure-Plugin für Grails die einen einfachen Zugang bietet auszuführen clojure Code von jedem Grails Artefakts (Steuerungen, taglibs, Dienstleistungen usw. ...):
http:// grails.org/plugin/clojure
Es ist auch möglich, Clojure in Java-Code und umgekehrt generierten Klassen zu verwenden: so die ganze Clojure <-> Java <-> Groovy Pfad sollte – mikera