6

我有一堆 Scala 类(如 Lift 的 Box、Scala 的 Option 等),我想在 Clojure 中将它们用作 Clojure ISeq。

我如何告诉 Clojure 如何将这些类变成一个 ISeq,以便所有各种与序列相关的函数“正常工作”?

4

2 回答 2

2

为了建立亚瑟的答案,您可以在 Scala 中提供一个通用包装类,如下所示:

class WrapCollection(repr: TraversableOnce[_]) extends clojure.lang.Seqable { ... }
于 2013-01-23T22:06:57.227 回答
2

如果类实现了Iterable接口,那么你可以调用seq它们来获得一个序列。first序列库中的大多数函数都会为您执行此操作,因此在几乎所有正常情况下,您都可以像count原样将它们传递给 seq 函数。

于 2013-01-22T23:33:46.510 回答