arrows

    3热度

    1回答

    我在Andrew Birkett的博客Applicative arrows for XML &&& return to pure上阅读了我们可以混合箭头和应用仿函数。 我尝试了我自己的,但我没有我所期望的。 我想这样的结果: [Scenario {scenario = "11111", origin = "333", alarm = "Sonde1"}, Scenario {scenario =

    1热度

    1回答

    我有以下情况。我从探针获取周数据。数据收集在几个xml文件中(内联在下面的代码中)。我需要在一个文件中连接这些。虽然我把它们集中在一个可以进一步翻译成单个文件的记录中。 结果记录我试图抓住如下: [YS {ser = "MSG" , ori =[YO {site = "Bordeaux" , perfM = ["0","0"] } ,YO {site = "Paris"

    6热度

    3回答

    通过Comparing list length 如果我想找到一个列表的列表最长的名单启发比较列表长度,最简单的方法可能是: longestList :: [[a]] -> [a] longestList = maximumBy (comparing length) 一个更有效的方法是以预先计算长度: longest :: [[a]] -> [a] longest xss = snd $ m

    7热度

    1回答

    我正在写一个流转换器从一些输入数据类型到一个输出数据类型。输入是由用户进行的,所以事件之间有一段时间。因为每个输入都需要一些资源加载,所以我想“展望未来”,即将所有可能的输入发送到主计算并根据结果预加载资源。 目前,每次输入后总是只有一个输出,但最终可能会变得有趣。 我成功地用Ross Paterson的Automaton变压器来实现它。我不确定我的解决方案是否最佳。 有没有很好的例子如何做到这一

    4热度

    1回答

    Haskell wiki > Netwire对Netwire有一些很好的介绍材料,但现在(作为业余爱好者Haskeller),我对更多东西感兴趣。为了提高我的箭头/网络技能,什么样的简单练习对我有益?

    5热度

    1回答

    我想学习Haskell中的箭头,所以我正在用基于箭头的HXT库XML编写一个简单的应用程序。 HXT wiki和教程中的示例放弃了函数类型签名。但是,我非常喜欢类型,并试图解决如何使用它们。这是我遇到了绊脚石的地方。鉴于这些功能: readXml str = runX (readString [withValidate no] str) atTag tag = deep (isElem >>>

    3热度

    1回答

    我一直在使用hxt,没有问题,但从开始就有问题。 见,想象下面的一段代码 liftKeys = atTag "myKeys" >>> proc e -> do key1 <- getAttrValue "name" -< e key2 <- getAttrValue "chance" -< e returnA -< (key1, key2) 我已经

    7热度

    2回答

    我想创建一个元组,里面有一个箭头和一个描述箭头的字符串。 funTimes10 = (*10) describe10 = "times 10" tuple10 :: (Num b) => ((b -> b), String) tuple10 = (,) funTimes10 describe10 我可以fst访问功能,并与snd我得到的功能的描述字符串:如果我和功能(而不是箭头),以下

    10热度

    2回答

    我已阅读arrow notation documentation page,但我不完全清楚“7.10.3。定义自己的控制结构”下使用的“管道支架”。 鉴于上述文件 proc x -> do y <- f -< x+1 (|untilA (increment -< x+y) (within 0.5 -< x)|) 什么,而无需使用箭头符号的等效代码的例子吗?

    0热度

    1回答

    所以我解析这个XML文件。一旦我到达一个节点里面,我有一个子代码,一个用于描述,一个或多个(孙子)节点保存在节点引用之外。 我第一次尝试简单的箭头符号和< +>聚合得到所有我想要的信息,但是这只是突然的大名单,我想也许有一个更优雅的方式来实现这一 所以我尝试箭头做记号代替,使沿线的代码看起来: import Text.XML.HXT.Core getDocument cale = readDo