问题标签 [arrows]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
619 浏览

haskell - 学习Netwire的简单练习?

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

0 投票
1 回答
322 浏览

haskell - 箭头/HXT 和类型签名

我正在尝试在 Haskell 中学习箭头,因此我正在使用基于箭头的 XML HXT 库编写一个简单的应用程序。HXT wiki 和教程中的示例放弃了函数类型签名。但是,我非常喜欢类型,并且正在尝试弄清楚如何使用它们。这是我遇到的绊脚石。鉴于这些功能:

我认为他们应该被分配以下签名:

我正在尝试使用箭头语法将它们连接在一起:

但是,如果我的类型签名是正确的(GHC 没有抱怨),我需要一种结合 monad 语法和箭头语法的方法来XmlTree退出并返回IO.

我不确定如何进行。有人有任何见解吗?

0 投票
2 回答
1473 浏览

haskell - 特殊括号 (| ... |) 脱糖成什么?

我已经阅读了箭头符号文档页面,但我并不完全清楚在“7.10.3.Defining your own control structure”下使用的“管道括号”是什么。

鉴于上述文档中的示例

不使用箭头符号的等效代码是什么?

0 投票
1 回答
312 浏览

haskell - 更好地使用 HXT 和箭头

我一直在使用hxt没有问题,但是从一开始就有问题。看,想象下面这段代码

我已经像这样使用它来解析许多文档,并且在经典的编程问题之前,我缺乏抽象。

我有四个(以及更多即将到来的)文件要解析,就像这个例子一样。有些有 2 个属性,有些有 5 ,有些有 1 等等我不能根据我的文件的属性数量来编写不同版本的 liftKeys。问题是我真的不明白箭头或我在做什么 uu 必须有一些折叠或一些东西来编写更简单的代码。

你知道这个更好的用途吗?

0 投票
1 回答
132 浏览

xml - HXT XML 搜索未返回预期结果

所以我正在解析这个 XML 文件。一旦我到达其中的一个节点,我就有一个子节点用于代码,一个用于描述,一个或多个(孙子)节点保留外部节点引用。

我首先尝试了简单的箭头符号和 <+> 聚合来获取我想要的所有信息,但这只是弹出了一个大列表,我想也许有一种更优雅的方式来实现这一点

所以我尝试了箭头符号,并让代码看起来像这样:

就我对这个过滤器的理解而言,基本上 deep 应该返回同一级别的所有“service-id-ref”节点,但第一个满足“list-info”名称的节点有 2 个“service-id-ref”子节点2 个不同的孙子节点和 refs 上的节点每次只绑定到第一个。所以基本上我期待 (String,String,[String]) 的 3 元组,但我得到的只是 3 个普通字符串。

是因为我对 do-notation(或一般而言)中的箭头理解不佳,还是我应该尝试以其他方式绑定 refs?

提前致谢

0 投票
2 回答
584 浏览

haskell - 元组内的 Haskell 箭头

我想创建一个元组,它包含一个箭头和一个描述箭头的字符串。如果我使用函数(而不是箭头)这样做,则以下工作如预期:

我可以使用 访问该函数fst,并snd获得该函数的描述字符串。

但是,如果我用箭头交换函数,如下所示:

  • fst仍然有效并返回我的箭头,但是
  • 我没有得到任何描述字符串snd

我只收到此错误消息:

为什么我会收到这个错误,我应该怎么做才能避免它?

0 投票
2 回答
321 浏览

haskell - 我如何在这里使用箭头?

考虑

忽略可以使用 轻松编写的事实elem,我有一种强烈的感觉,即我可以使用Arrow语法来简化 lambda,但我就是做错了。

可以使用箭头简化这个 lambda 表达式吗?关于如何“看到”箭头何时起作用以及如何找到正确的表达方式,您是否有任何一般性提示?

0 投票
3 回答
1717 浏览

haskell - 计算构造(Monads、Arrows 等)

我对如何在 Haskell 中建模计算变得相当感兴趣。一些资源将 monad 描述为“可组合计算”,将箭头描述为“计算的抽象视图”。我从未见过以这种方式描述的幺半群、函子或应用函子。他们似乎缺乏必要的结构。

我觉得这个想法很有趣,想知道是否还有其他结构可以做类似的事情。如果是这样,我可以使用哪些资源来熟悉它们?Hackage 上是否有任何可能派上用场的软件包?

注意:这个问题类似于 Monads vs. Arrowshttps://stackoverflow.com/questions/2395715/resources-for-learning-monads-functors-monoids-arrows-etc,但我正在寻找超越 funtors 的构造,适用函子、单子和箭头。

编辑:我承认应用函子应该被认为是“计算构造”,但我真的在寻找我还没有遇到过的东西。这包括应用函子、单子和箭头。

0 投票
2 回答
933 浏览

haskell - 箭头的创造性使用

我刚刚阅读了monads 的 Creative uses的帖子,里面挤满了非常有趣的想法和参考资料,所以我很好奇:箭头呢?我不是在寻找关于基础或“标准”用途的个人意见或参考(如monads vs arrows帮助理解 haskell 中的箭头),而是寻找智能和/或非平凡应用程序的参考列表(也许在研究论文中?)。谢谢。

0 投票
2 回答
1303 浏览

haskell - 这个 ArrowLoop.loop 的定义是如何工作的?

ArrowLoop包含的函数实例

首先我对签名有一个问题:我们怎么可能b -> c(b,d) -> (c,d)? 我的意思是,c结果元组中的 可能取决于输入的两个元素,如何“切断” 的影响d

其次,我不明白let这里的工作原理。不包含(c,d) = f (b,d)的循环定义d?从哪里来d?老实说,我很惊讶这是有效的语法,因为看起来我们会重新定义d.

我的意思是在数学中这是有道理的,例如 f 可能是一个复杂的函数,但我只会提供实部 b,并且我需要选择虚部 d 以使其在我不会改变时评估 f (b,d),这将使它成为某种固定点。但是,如果这个类比成立,则let表达式必须以某种方式“搜索”d 的那个不动点(并且可能不止一个)。在我看来,这很接近魔术。还是我觉得太复杂了?