Clojure到Scala类型的转换

use*_*121 5 scala clojure

我在将Clojure Seq转换为Scala Seq时遇到了麻烦.似乎应该有一个简单的方法来做到这一点.

(let [animals ["dog" "cat" "pig"]]
  (to-scala-seq animals))
Run Code Online (Sandbox Code Playgroud)

我的目标是在Clojure项目中使用twitter的algebird.

noa*_*hlz 4

因为 Clojure 和 Scala 都运行在 JVM 上,所以这相当简单:

 (ns scala-from-clojure.core
   (:import (scala.collection JavaConversions)))

 (defn to-scala-seq [coll]
   (-> coll JavaConversions/asScalaBuffer .toList))
Run Code Online (Sandbox Code Playgroud)

在 REPL

user=> (use 'scala-from-clojure.core)
nil
user=> (to-scala-seq [1 2 3])
#<$colon$colon List(1, 2, 3)>
user=> (instance? scala.collection.immutable.Seq *1)
true
Run Code Online (Sandbox Code Playgroud)

如何在 Java 中从 Java 列表创建 scala.collection.immutable.Seq?