|
12 | 12 |
|
13 | 13 | <body>Clojure interop from Java.
|
14 | 14 |
|
15 |
| -<p>The clojure.api package provides a minimal interface to bootstrap |
| 15 | +<p>The clojure.java.api package provides a minimal interface to bootstrap |
16 | 16 | Clojure access from other JVM languages. It does this by providing:
|
17 | 17 | </p>
|
18 | 18 |
|
|
25 | 25 | </ol>
|
26 | 26 |
|
27 | 27 | <p><code>IFn</code>s provide complete access to
|
28 |
| - Clojure's <a href="http://clojure.github.com/clojure/">API</a>s. |
| 28 | + Clojure's <a href="http://clojure.github.io/clojure/">API</a>s. |
29 | 29 | You can also access any other library written in Clojure, after adding
|
30 | 30 | either its source or compiled form to the classpath.</p>
|
31 | 31 |
|
|
34 | 34 | </p>
|
35 | 35 |
|
36 | 36 | <ol>
|
37 |
| -<li>clojure.api.API</li> |
| 37 | +<li>clojure.java.api.Clojure</li> |
38 | 38 | <li>clojure.lang.IFn</li>
|
39 | 39 | </ol>
|
40 | 40 |
|
|
43 | 43 |
|
44 | 44 | <p>To lookup and call a Clojure function:
|
45 | 45 | <pre>
|
46 |
| -IFn plus = API.var("clojure.core", "+"); |
| 46 | +IFn plus = Clojure.var("clojure.core", "+"); |
47 | 47 | plus.invoke(1, 2);
|
48 | 48 | </pre>
|
49 | 49 | </p>
|
50 | 50 |
|
51 | 51 | <p>Functions in <code>clojure.core</code> are automatically loaded. Other
|
52 | 52 | namespaces can be loaded via <code>require</code>:
|
53 | 53 | <pre>
|
54 |
| -IFn require = API.var("clojure.core", "require"); |
55 |
| -require.invoke(API.read("clojure.set")); |
| 54 | +IFn require = Clojure.var("clojure.core", "require"); |
| 55 | +require.invoke(Clojure.read("clojure.set")); |
56 | 56 | </pre>
|
57 | 57 | </p>
|
58 | 58 |
|
59 | 59 | <p><code>IFn</code>s can be passed to higher order functions, e.g. the
|
60 | 60 | example below passes <code>plus</code> to <code>read</code>:
|
61 | 61 | <pre>
|
62 |
| -IFn map = API.var("clojure.core", "map"); |
63 |
| -IFn inc = API.var("clojure.core", "inc"); |
64 |
| -map.invoke(inc, API.read("[1 2 3]")); |
| 62 | +IFn map = Clojure.var("clojure.core", "map"); |
| 63 | +IFn inc = Clojure.var("clojure.core", "inc"); |
| 64 | +map.invoke(inc, Clojure.read("[1 2 3]")); |
65 | 65 | </pre>
|
66 | 66 | </p>
|
67 | 67 |
|
|
70 | 70 | instead of <code>fn</code>:</p>
|
71 | 71 |
|
72 | 72 | <pre>
|
73 |
| -IFn printLength = API.var("clojure.core", "*print-length*"); |
74 |
| -API.var("clojure.core", "deref").invoke(printLength); |
| 73 | +IFn printLength = Clojure.var("clojure.core", "*print-length*"); |
| 74 | +IFn deref = Clojure.var("clojure.core", "deref"); |
| 75 | +deref.invoke(printLength); |
75 | 76 | </pre>
|
76 | 77 |
|
77 | 78 | </body>
|
|
0 commit comments