我正在尝试编写一个箭头,它将从使用HXT的XML解析中生成编号的元素。它看起来应该使用状态箭头来完成,就像state monad一样,但我在HXT包中找到的所有示例和访问状态(XmlState)的方法都使用IOStateArrow,我更愿意使用StateArrow来保持它的纯净,以简化测试过程。这样的变种存在吗?如果不是,我如何向HXT解析添加状态,而不必求助于在IO中运行箭头?
发布于 2011-01-22 22:45:52
为此,您可以使用SLA的ArrowState实例。例如:假设我们需要连接所有二级文本元素。
Prelude Text.XML.HXT.Core> fst $ runSLA (xread >>> getChildren >>> getChildren >>> isText >>> getText >>> changeState (++)) "" "<xml><item>a</item><item>b</item></xml>"
"ab"请注意,您不能在SLA中使用IO,因为在中没有ArrowIO实例。
希望,这是你需要的。
https://stackoverflow.com/questions/4767978
复制相似问题