2012-09-25 35 views
2

我想使用Clojure的探索这个例子中嵌套模板的构造 - http://jscience.org/api/org/jscience/mathematics/function/package-summary.html如何使调用Clojure中

// Defines two local variables (x, y). 
    Variable<Complex> varX = new Variable.Local<Complex>("x"); 
    Variable<Complex> varY = new Variable.Local<Complex>("y"); 

    // f(x) = ix² + 2x + 1 
    Polynomial<Complex> x = Polynomial.valueOf(Complex.ONE, varX); 
    Polynomial<Complex> fx = x.pow(2).times(Complex.I).plus(
     x.times(Complex.valueOf(2, 0)).plus(Complex.ONE)); 
    System.out.println(fx); 
    System.out.println(fx.pow(2)); 
    System.out.println(fx.differentiate(varX)); 
    System.out.println(fx.integrate(varY)); 
    System.out.println(fx.compose(fx)); 

    // Calculates expression. 
    varX.set(Complex.valueOf(2, 3)); 
    System.out.println(fx.evaluate()); 

我如何去构建varX

回答

3

假设你已经导入org.jscience.mathematics.function.Variable$Local

(let [v (Variable$Local. "x")] 
    ...) 

就是移植Java代码Clojure的时候可以忽略类型参数,如<Complex>。请注意嵌套的类如Local$的封闭类是分开的。

+0

太棒了!谢谢 – zcaudate