gpt4 book ai didi

java - 如何将类 java Iterator 对象转换为 clojure 序列

转载 作者:搜寻专家 更新时间:2023-10-30 19:55:53 25 4
gpt4 key购买 nike

我正在使用 Sesame 库对内存中的三元组存储运行 SPARQL 查询。

我正在使用 Clojure 来实现这一目标。

查询结果是一个自定义的 Iterator-like [1] 对象,因此 clojure seq 不能开箱即用。

将自定义 java Iterator 类对象转换为 clojure 序列的最优雅方法是什么?

我想到的最明显和最愚蠢的想法是循环它并构建一个 clojure vector ,但我确信有更优雅的方法来解决这个问题。

[1] http://www.openrdf.org/doc/sesame2/api/info/aduna/iteration/Iteration.html

最佳答案

测试版本:

(defn iteration->seq [iteration]
(seq
(reify java.lang.Iterable
(iterator [this]
(reify java.util.Iterator
(hasNext [this] (.hasNext iteration))
(next [this] (.next iteration))
(remove [this] (.remove iteration)))))))

关于java - 如何将类 java Iterator 对象转换为 clojure 序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9225948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com