问题标签 [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 - 我可以映射一对没有箭头的第一个元素吗?
我正在关注函子,应用函子……我不确定如何到达我想要的地方,但我觉得遵循这些类型应该让我更接近。
有没有一种简单的方法来制作map
仅适用于 2 元组的第一个元素的 -alike?从first
和Control.Arrow
使用Arrow (->)
,这很好地解决了问题:
我唯一担心的是我还没有对箭有真正的直觉,所以如果我继续这样做,我可能迟早会发现自己陷入困境。另外,这似乎是一个相当方便的案例,不能一概而论。
我可以通过使用仿函数、单子或其他任何东西来获得相同的功能,同时达到我想要的核心吗?我在玩弄
- 类似的想法,但无法完全实现。
haskell - 相当于mapM的箭头?
我正在尝试与 Arrows 一起探索和工作,但遇到了一些困难。我有一个需要 的上下文Arrow [a] [b]
,并且我想Arrow a b
在箭头 a la 内编写一个并将其映射/排序mapM
。具体来说,箭头是 Hakyll Compiler
,但我认为这对答案并不重要。
给定一个箭头
我怎样才能把它变成箭头
?
我已经搜索了基础库,特别是在Data.List
and中Control.Arrow
,但我找不到任何看起来可以完成这项工作的东西。它是否以我没想到的名字存在?它是由其他图书馆提供的吗?是不是因为某种原因不能写?
generics - 自由箭头的有用操作
我们知道免费的 monad 很有用,像Operational这样的包通过只关心特定于应用程序的效果而不是 monadic 结构本身来轻松定义新的 monad。
我们可以很容易地定义“自由箭头”,类似于定义自由单子的方式:
我的问题是,对自由箭头最有用的通用操作是什么?对于我的特定应用程序,我需要这两种情况的特殊情况:
但是对于为什么这些(而不是其他)有用的,我没有任何理论论据。
haskell - 箭头如何用于多个元组?
我有很多具有不同数量的参数元组的构造。如果是
我想“嘿,那是箭!”:
但是我还不能弄清楚具有多个输入元组的函数(如第一行代码)是否以及如何映射到箭头样式。处理此类功能的通用方法是什么?理想情况下,我总是想要类似foo = bar ... bar2
.
haskell - 箭头中的可观察递归(或绑定)
我正在尝试找到一种方法来翻译正常的递归符号,例如 |fib| 函数下面的箭头,尽可能多地保留递归符号的结构。另外我想检查箭头。为此,我为每个 Arrow{..} 类创建了一个包含构造函数的数据类型:
谎言:
我的 R 数据类型,此数据类型的实例包含到适当构造函数的映射:
翻译 |fib| 上面的函数首先导致以下定义。然而,由于 |fibz| 的声明的 RHS 上的 proc n,这是不允许的。我知道箭头符号的语法阻止了这一点,但其根本原因是什么?
重写上面的函数以使用 let 语句编译。但是,这里出现了我的第二个问题。我希望能够检查它发生的递归。然而,在这种情况下 |fibz| 是一棵无限大的树。我想将递归捕获到fibz,我希望rec结合|loop|帮助我解决这个问题 但也许我错了?
基本上,是否可以观察到这种递归?(也许甚至在箭头符号的范围内)我也许可以添加另一个构造函数,如修复。也许我应该能够观察变量的绑定,以便引用它们成为可能。不过,这将超出 Arrows 的范围。
对此有什么想法吗?
更新 1:
我想出了这个表格,在箭头符号之外。这隐藏了内部的递归app
,因此我最终得到了箭头的有限表示。但是,我仍然希望能够例如将对fib
inside的调用替换app
为fib
.
此代码对应于以下箭头符号:
haskell - Haskell 在 Agda 中的 Arrow-Class 和 -> 在 Agda 中
我有两个密切相关的问题:
首先,Haskell 的 Arrow 类如何在 Agda 中建模/表示?
(以下博客文章指出它应该是可能的......)
其次,在 Haskell 中,(->)
是一等公民,只是另一种高阶类型,它可以直接定义(->)
为Arrow
类的一个实例。但是在阿格达呢?我可能是错的,但我觉得 Agdas->
是 Agda 的一个更不可或缺的部分,而不是 Haskell 的->
。那么,是否可以将 Agdas->
视为一种高阶类型,即产生Set
可以作为 的实例的类型函数Arrow
?
haskell - 将 Kleisli 箭头提升到 IO?
如果我有以下两个 Kleisli 箭头:
我希望能够写出类似的东西:
这当然行不通,因为String
不匹配IO String
. 另一方面,可以同时定义stdoutProcessA
和定义writeToFileA
type Kleisli IO ...
,但是我将无法用 type 的箭头组合它们Kleisli Maybe ...
,这是我需要的其他事情。
我对箭头还不是很有经验,所以我可能遗漏了一些明显的东西。如何进行上述操作?
xml - 在 Haskell 中为箭头函数提供参数
我有一个包含一些数据的 XML 文件。该文件包含对列和数据本身的描述。我可以读取列名,但无法读取数据,因为我不明白如何将此行名赋予将返回数据的函数。
XML 文件:
示例代码:
对我来说问题出在getRowsData
. 在示例代码中,我隐含地给出了列名,但我希望它从列表中读取,应用于箭头函数并返回行。
haskell - `ab [c]` 和 `acd` 类型的链接箭头
我有一个输出值列表的箭头 ( a b [c]
) 和另一个接受该类型的单个值( ) 的箭头a c d
。我需要的基本上是一种将它们链接起来或将第二个箭头提升到a [c] [d]
.
haskell - 使用 XmlArrow 从页面中获取第 n 个元素?
按照这个页面抓取教程,作者获取页面上所有图像的集合,如下所示:
我怎样才能只获得页面上的第二张图片?getElementAt :: Int -> blah
我在XmlArrow 文档中找不到任何类型的函数 。
谢谢!