问题标签 [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 投票
3 回答
1379 浏览

haskell - haskell 中的箭头说明

什么是了解箭头的好地方?理想情况下,我只是从一些好的例子中寻找一个具有简洁定义的地方,类似于 Wadler 对 monads 的阐述。

0 投票
2 回答
935 浏览

haskell - 带有箭头语法的 Haskell/Yampa 中的简单 putStrLn

我将 Haskell 与使用箭头语言扩展的 Yampa FRP 库一起使用。

我怎样才能在 SF 中做一个简单的 putStrLn?

箭头语法抱怨表达式不在箭头中(当然),但即使有箭头我也没有输出

0 投票
1 回答
6683 浏览

haskell - 理解 Haskell 中的箭头

我一直试图掌握箭头,因为它们是大多数FRP实现的基础。我想我理解了基本思想——它们与 monad 相关,但在每个绑定运算符中存储静态信息,因此您可以穿过一连串箭头并查看静态信息,而无需评估整个箭头。

但我在我们开始讨论第一、第二和交换时迷失了方向。2元组与箭头有什么关系?教程展示了元组的东西,好像它是一个明显的下一步,但我并没有真正看到联系。

就此而言,箭头语法直观地意味着什么?

0 投票
2 回答
9545 浏览

language-agnostic - 单子与箭头

我对函数式编程中使用的单子箭头的概念非常熟悉。我也明白它们可以用来解决类似的问题。

但是,我仍然对如何选择在任何给定情况下使用哪一个感到有些困惑。

什么时候应该使用单子,什么时候应该使用箭头?

0 投票
1 回答
2656 浏览

haskell - Haskell:我是否误解了如何使用箭头?

我编写了一些玩具代码来玩弄箭头的概念。我想看看我是否可以编写一个箭头来编码有状态函数的概念——在不同的调用后给出不同的值。

因此,在我浏览了各种类型类定义之后(不确定 ArrowZero 是否或如何工作,所以我跳过了它),我定义了一些辅助函数

并制定了一个使用示例

但是,当我尝试编译时,我得到andcountExample的“不在范围内”错误,我想这意味着我需要回到教程并阅读什么时候可以使用的内容。我想我真正喜欢的东西更像是count'count''

但这有点尴尬,我希望有一些更自然的东西。

谁能解释我如何误解箭头的工作原理以及如何使用它们?我是否缺少Arrows的基本哲学?

0 投票
1 回答
239 浏览

f# - 你能在 F# 中定义一个运算符(***)吗?

我正在使用 F# 中的箭头,我想创建一个***运算符。但是,我注意到,(***)在函数定义中表达运算符的必要方式与 F# 块注释语法重叠。那么你怎么能真正表达这一点呢?

我想过也许,.***.但我认为这实际上会将点视为运算符的一部分,我宁愿避免。

0 投票
1 回答
322 浏览

xml - 折叠箭头以列出

我在使用HXT时遇到了一些问题,尽管我怀疑这只是我对箭头的遗漏。

我有一个类似的 XML 结构

和内部结构一样

有没有办法在箭头的一步收集元素?

对 getXmlData 的递归调用需要收集它的答案并包装在 XmlList 构造函数中,但我不知道如何收集术语。目前,我正在对输出进行一些后处理(以相同的名称收集)来完成此操作,但我想要一个更好的解决方案。

0 投票
5 回答
13716 浏览

haskell - 什么是箭头,我该如何使用它们?

我试图学习箭头的含义,但我不明白它们。

我使用了 Wikibooks 教程。我认为 Wikibook 的问题主要在于它似乎是为已经了解该主题的人编写的。

有人可以解释什么是箭头以及如何使用它们吗?

0 投票
1 回答
411 浏览

haskell - HXT:左因子非确定性箭头?

我正在尝试与 Haskell 的 XML 工具箱 ( HXT ) 达成协议,但我在某处碰壁,因为我似乎没有完全掌握箭头作为一种计算工具。

这是我的问题,我希望使用 GHCi 会话更好地说明:

所以 Parse 是一个小的辅助函数,它将我给它的任何箭头应用到琐碎的 XML 文档

我定义了另一个辅助函数,这次是提取具有给定名称的节点下面的文本:

在这个函数的帮助下,很容易使用&&&组合器来配对两个不同节点的文本,然后,比如说,将它传递给构造函数,如下所示:

现在到了我不明白的部分:我想左因子!extract两次调用getChildren根节点。相反,我希望它只调用一次!所以我首先得到根节点的孩子

请注意,我已尝试重新排序对 isElem 等的调用,以确定是否是问题所在。但就目前而言,我只是不知道为什么这不起作用。Haskell wiki上有一个箭头“教程” ,按照我的理解,它应该可以做我想做的事情——即使&&&用来配对两个计算的结果。

它也确实有效——但只是在箭头链的开始,而不是在低谷的中间,当我已经有了一些结果时,我想保持“共享”。我有一种感觉,就是无法理解正常函数组合和箭头符号之间的想法差异。我会非常感谢任何指针!(即使它只是一些比 Haskell-wiki 更深入的通用箭头教程。)

谢谢!

0 投票
3 回答
247 浏览

haskell - 一对如何与箭头函数的类型统一

一些与箭头一起使用的函数在对上使用时非常方便。但我不明白这些函数的类型是如何与一对统一的。一般来说,我发现与箭头相关的函数的类型相当混乱。

例如,我们有first :: a b c -> a (b, d) (c, d),这对我来说意义不大。但它可以用来增加一对中的第一个数字:

有人可以解释一下这是如何工作的吗?