我正在尝试编写一个箭头,该箭头将使用 HXT 从 XML 解析中生成编号元素。似乎应该使用状态箭头来完成,例如 State monad,但是我可以在 HXT 包中找到的所有示例以及访问状态(XmlState)的方法都使用 IOStateArrow 我宁愿保持它纯粹使用 StateArrow 简化测试过程。是否存在这样的变体?如果不是,我将如何将状态添加到 HXT 解析而不必求助于在 IO 中运行箭头?
问问题
344 次
1 回答
3
您可以为此使用SLA的ArrowState实例。一个例子:假设我们需要连接所有的二级文本元素。
Prelude Text.XML.HXT.Core> fst $ runSLA (xread >>> getChildren >>> getChildren >>> isText >>> getText >>> changeState (++)) "" "<xml><item>a</item><item>b</item></xml>"
"ab"
请注意,您不能IO
在SLA
没有ArrowIO
实例的情况下使用。
希望,这是你需要的。
于 2011-01-22T14:45:51.763 回答