我有一堆Scala类(如Lift's Box,Scala's Option等),我想 在Clojure中用作Clojure ISeq。
如何告诉Clojure如何将这些类转换为ISeq以便所有各种序列 相关功能“只是工作”?
答案 0 :(得分:2)
如果这些类实现了Iterable
接口,那么您只需在它们上面调用seq
即可获得一个序列。序列库中的大多数函数都会为您执行此操作,但在几乎所有正常情况下,您都可以将它们原样传递给first
和count
等seq函数。
答案 1 :(得分:2)
基于Arthur的答案,您可以在这些行中提供Scala中的通用包装类:
class WrapCollection(repr: TraversableOnce[_]) extends clojure.lang.Seqable { ... }