16

我熟悉可以从 clojure 调用 scala 类/对象,因为 scala 编译为字节码,并且 clojure 对此很满意。

但是,它是否可以轻松调用 clojure 函数并从 scala 导入命名空间?

我想把优秀的lift框架和clojure混合起来,基本上是从lift中调用clojure代码。

4

2 回答 2

14

Scala 中的导入语义与 Java 基本相同。您应该能够通过阅读如何从 Java 调用 Clojure 代码来获得所需的信息,然后在 Scala 中应用相同的原则。

如果你想编译你的 Clojure 代码并将其作为 JAR 包含在你的类路径中,那么这篇文章应该是相关的:

从 Java 调用 Clojure

如果您希望动态编译/解释 .clj 文件,那么您应该阅读以下内容:

Clojure 编程:从 Java 调用 Clojure

第一个选项对我来说似乎好多了。

于 2012-08-13T06:19:01.250 回答
0

FWIW,我最近也有类似的经历。在 clojure 代码库中使用 scala 库并不总是那么简单。如果库作者在设计 api 时考虑到了非 scala 消费者,那么集成可能是微不足道的。如果不是,您可能需要了解您尝试使用的 scala 库生成的 java 接口的详细信息。

我最近写了一篇关于这个确切主题的文档(https://github.com/grandbora/clojure-scala-cantrips#clojure-scala-cantrips)并且有一些 clojure 库提供了使用 scala 库的糖语法。

于 2017-05-14T20:48:27.727 回答