public class Clojure
extends java.lang.Object
The Clojure class provides a minimal interface to bootstrap Clojure access from other JVM languages. It provides:
IFn
interface.read
for reading data using
Clojure's edn readerTo lookup and call a Clojure function:
IFn plus = Clojure.var("clojure.core", "+"); plus.invoke(1, 2);
Functions in clojure.core
are automatically loaded. Other
namespaces can be loaded via require
:
IFn require = Clojure.var("clojure.core", "require"); require.invoke(Clojure.read("clojure.set"));
IFn
s can be passed to higher order functions, e.g. the
example below passes inc
to map
:
IFn map = Clojure.var("clojure.core", "map"); IFn inc = Clojure.var("clojure.core", "inc"); map.invoke(inc, Clojure.read("[1 2 3]"));
Modifier and Type | Method and Description |
---|---|
static java.lang.Object |
read(java.lang.String s)
Read one object from the String s.
|
static IFn |
var(java.lang.Object qualifiedName)
Returns the var associated with qualifiedName.
|
static IFn |
var(java.lang.Object ns,
java.lang.Object name)
Returns an IFn associated with the namespace and name.
|
public static IFn var(java.lang.Object qualifiedName)
qualifiedName
- a String or clojure.lang.Symbolpublic static IFn var(java.lang.Object ns, java.lang.Object name)
ns
- a String or clojure.lang.Symbolname
- a String or clojure.lang.Symbolpublic static java.lang.Object read(java.lang.String s)
s
- a String