2013-06-30 133 views
5

我無法將Clojure Seq轉換爲Scala Seq。似乎應該有一個簡單的方法來做到這一點。Clojure轉換爲Scala類型轉換

(let [animals ["dog" "cat" "pig"]] 
    (to-scala-seq animals)) 

我的目標是在Clojure的項目中使用twitter's algebird

+4

你是不是想定義'to-scala-seq'?如果是這樣,你應該顯示你有什麼。 – Jeremy

回答

4

因爲Clojure的和Scala在JVM上雙方而言,這是相當直接:

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

(defn to-scala-seq [coll] 
    (-> coll JavaConversions/asScalaBuffer .toList)) 

在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 

How to create a scala.collection.immutable.Seq from a Java List in Java?