我正在尝试处理新的defprotocol,reify等.
我有一个从XPath调用返回的org.w3c.dom.NodeList,我想将它“转换”为一个ISeq.
implicit def nodeList2Traversable(nodeList: NodeList): Traversable[Node] = { new Traversable[Node] { def foreach[A](process: (Node) => A) { for (index <- 0 until nodeList.getLength) { process(nodeList.item(index)) } } } }
NodeList包括方法int getLength()和Node item(int index).
我如何在Clojure中做相同的操作?我希望我需要使用defprotocol.我需要定义哪些函数来创建seq?
如果我使用循环和重复进行简单,天真的转换到列表,我将得到一个非惰性结构.