काम नहीं करता है मैं क्लोजर सीखने में बहुत नया हूं। यह मेरा पहला और बहुत सरल क्लोजर होने का इरादा रखता है जिसमें मैं जावा कोड के अंदर से एक सरल क्लोजर विधि कहता हूं। दुर्भाग्य से यह काम नहीं करता है। संकलन सफल हुआ और Clojure REPL से लिखा समारोह करता है के रूप में यह आदेश दिया गया था, लेकिन जब जावा से फोन कर यह निम्नलिखित कहते हैं:जावा से एक बहुत ही सरल क्लोजर फ़ंक्शन को कॉल करना
(ns com.experimental.clojure.test.ClojNum
(:gen-class
:init init
:name com.experimental.clojure.test.ClojNum
:methods [
[myinc [int] int]
]))
(defn -init [] [[] (atom [])])
(defn myinc "comment" [x] (+ x 1))
(defn -myinc "comment" [x] (myinc x))
:
Exception in thread "main" java.lang.IllegalArgumentException: Wrong number of args (2) passed to: ClojNum$-myinc
at clojure.lang.AFn.throwArity(AFn.java:439)
at clojure.lang.AFn.invoke(AFn.java:43)
at com.experimental.clojure.test.ClojNum.myinc(Unknown Source)
at com.experimental.clojure.java.JavaCaller.main(JavaCaller.java:14)
यहाँ बहुत ही सरल Clojure कोड है और जावा भाग:
package com.experimental.clojure.java;
import com.experimental.clojure.test.ClojNum;
public class JavaCaller {
/**
* @param args
*/
public static void main(String[] args) {
int i = 0;
System.out.println(i);
ClojNum c = new ClojNum();
i = c.myinc(0);
System.out.println(i);
}
}
मैंने क्या गलत किया? (नोट दोबारा: यह पहली सफल फ़ंक्शन कॉल करने के लिए प्राइमेटिव टेस्ट कोड है)
सहायता के लिए धन्यवाद, मैं अनजान हूं।
http://stackoverflow.com/questions/2181774/calling-clojure-from-java – Jeremy