Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一堆 Scala 类(如 Lift 的 Box、Scala 的 Option 等),我想在 Clojure 中将它们用作 Clojure ISeq。
我如何告诉 Clojure 如何将这些类变成一个 ISeq,以便所有各种与序列相关的函数“正常工作”?
为了建立亚瑟的答案,您可以在 Scala 中提供一个通用包装类,如下所示:
class WrapCollection(repr: TraversableOnce[_]) extends clojure.lang.Seqable { ... }
如果类实现了Iterable接口,那么你可以调用seq它们来获得一个序列。first序列库中的大多数函数都会为您执行此操作,因此在几乎所有正常情况下,您都可以像count原样将它们传递给 seq 函数。
Iterable
seq
first
count