来自Scala课程的Clojure ISeq

时间:2013-01-22 22:30:56

标签: scala clojure

我有一堆Scala类(如Lift's Box,Scala's Option等),我想 在Clojure中用作Clojure ISeq。

如何告诉Clojure如何将这些类转换为ISeq以便所有各种序列 相关功能“只是工作”?

2 个答案:

答案 0 :(得分:2)

如果这些类实现了Iterable接口,那么您只需在它们上面调用seq即可获得一个序列。序列库中的大多数函数都会为您执行此操作,但在几乎所有正常情况下,您都可以将它们原样传递给firstcount等seq函数。

答案 1 :(得分:2)

基于Arthur的答案,您可以在这些行中提供Scala中的通用包装类:

class WrapCollection(repr: TraversableOnce[_]) extends clojure.lang.Seqable { ... }