问题标签 [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.
haskell - 学习Netwire的简单练习?
Haskell wiki > Netwire有一些很好的 Netwire 介绍材料,但现在(作为业余爱好者 Haskell)我对更多的东西感兴趣。什么样的简单练习有助于提高我的箭/网线技能?
haskell - 箭头/HXT 和类型签名
我正在尝试在 Haskell 中学习箭头,因此我正在使用基于箭头的 XML HXT 库编写一个简单的应用程序。HXT wiki 和教程中的示例放弃了函数类型签名。但是,我非常喜欢类型,并且正在尝试弄清楚如何使用它们。这是我遇到的绊脚石。鉴于这些功能:
我认为他们应该被分配以下签名:
我正在尝试使用箭头语法将它们连接在一起:
但是,如果我的类型签名是正确的(GHC 没有抱怨),我需要一种结合 monad 语法和箭头语法的方法来XmlTree
退出并返回IO
.
我不确定如何进行。有人有任何见解吗?
haskell - 特殊括号 (| ... |) 脱糖成什么?
我已经阅读了箭头符号文档页面,但我并不完全清楚在“7.10.3.Defining your own control structure”下使用的“管道括号”是什么。
鉴于上述文档中的示例
不使用箭头符号的等效代码是什么?
haskell - 更好地使用 HXT 和箭头
我一直在使用hxt没有问题,但是从一开始就有问题。看,想象下面这段代码
我已经像这样使用它来解析许多文档,并且在经典的编程问题之前,我缺乏抽象。
我有四个(以及更多即将到来的)文件要解析,就像这个例子一样。有些有 2 个属性,有些有 5 ,有些有 1 等等我不能根据我的文件的属性数量来编写不同版本的 liftKeys。问题是我真的不明白箭头或我在做什么 uu 必须有一些折叠或一些东西来编写更简单的代码。
你知道这个更好的用途吗?
xml - HXT XML 搜索未返回预期结果
所以我正在解析这个 XML 文件。一旦我到达其中的一个节点,我就有一个子节点用于代码,一个用于描述,一个或多个(孙子)节点保留外部节点引用。
我首先尝试了简单的箭头符号和 <+> 聚合来获取我想要的所有信息,但这只是弹出了一个大列表,我想也许有一种更优雅的方式来实现这一点
所以我尝试了箭头符号,并让代码看起来像这样:
就我对这个过滤器的理解而言,基本上 deep 应该返回同一级别的所有“service-id-ref”节点,但第一个满足“list-info”名称的节点有 2 个“service-id-ref”子节点2 个不同的孙子节点和 refs 上的节点每次只绑定到第一个。所以基本上我期待 (String,String,[String]) 的 3 元组,但我得到的只是 3 个普通字符串。
是因为我对 do-notation(或一般而言)中的箭头理解不佳,还是我应该尝试以其他方式绑定 refs?
提前致谢
haskell - 元组内的 Haskell 箭头
我想创建一个元组,它包含一个箭头和一个描述箭头的字符串。如果我使用函数(而不是箭头)这样做,则以下工作如预期:
我可以使用 访问该函数fst
,并snd
获得该函数的描述字符串。
但是,如果我用箭头交换函数,如下所示:
fst
仍然有效并返回我的箭头,但是- 我没有得到任何描述字符串
snd
。
我只收到此错误消息:
为什么我会收到这个错误,我应该怎么做才能避免它?
haskell - 我如何在这里使用箭头?
考虑
忽略可以使用 轻松编写的事实elem
,我有一种强烈的感觉,即我可以使用Arrow
语法来简化 lambda,但我就是做错了。
可以使用箭头简化这个 lambda 表达式吗?关于如何“看到”箭头何时起作用以及如何找到正确的表达方式,您是否有任何一般性提示?
haskell - 计算构造(Monads、Arrows 等)
我对如何在 Haskell 中建模计算变得相当感兴趣。一些资源将 monad 描述为“可组合计算”,将箭头描述为“计算的抽象视图”。我从未见过以这种方式描述的幺半群、函子或应用函子。他们似乎缺乏必要的结构。
我觉得这个想法很有趣,想知道是否还有其他结构可以做类似的事情。如果是这样,我可以使用哪些资源来熟悉它们?Hackage 上是否有任何可能派上用场的软件包?
注意:这个问题类似于 Monads vs. Arrows和https://stackoverflow.com/questions/2395715/resources-for-learning-monads-functors-monoids-arrows-etc,但我正在寻找超越 funtors 的构造,适用函子、单子和箭头。
编辑:我承认应用函子应该被认为是“计算构造”,但我真的在寻找我还没有遇到过的东西。这包括应用函子、单子和箭头。
haskell - 箭头的创造性使用
我刚刚阅读了monads 的 Creative uses的帖子,里面挤满了非常有趣的想法和参考资料,所以我很好奇:箭头呢?我不是在寻找关于基础或“标准”用途的个人意见或参考(如monads vs arrows或帮助理解 haskell 中的箭头),而是寻找智能和/或非平凡应用程序的参考列表(也许在研究论文中?)。谢谢。
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 的那个不动点(并且可能不止一个)。在我看来,这很接近魔术。还是我觉得太复杂了?