这个问题涉及到 clatrix Clojure 库 [1] 以及 jblas Java 库 [2](前者部分包裹了后者)。
lein repl
我通过在 clatrix 目录中启动 Clojure REPL ,该目录project.clj
指定了对org.jblas
. (这是 clatrix 与我的问题的相关程度。)
我可以参加import
jblas 的课程,但我更喜欢require
他们。
user> (import '[org.jblas DoubleMatrix Solve])
org.jblas.Solve
user> (. Solve solveLeastSquares (. DoubleMatrix rand 2 2) (. DoubleMatrix rand 2 1))
#<DoubleMatrix [1.965810; -1.044592]>
user> (require '[org.jblas Solve])
FileNotFoundException Could not locate org/jblas/Solve__init.class or org/jblas/Solve.clj on classpath: clojure.lang.RT.load (RT.java:432)
我可以只使用require
Clojure 库而不是 Java 库吗?我犯了标点错误吗?
理由:如果我可以org.jblas.Solve
成为require
d 并别名为,比如说,S
(仅作为一个例子),我可以简单地做(S/solveLeastSquares foo bar)
我认为比点空间符号更好的方法。此外,在 clatrix 的源代码中都使用了斜线符号,并且在 REPL 中进行实验以简化复制粘贴时也可以使用它。
[1] 见https://github.com/tel/clatrix
[2] 特别是它的Solve
类:https://github.com/mikiobraun/jblas/blob/master/src/main/java/org/jblas/Solve。爪哇#L44