问题标签 [applicative]

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 投票
2 回答
306 浏览

haskell - Haskell Applicative 和 ErrorT?

为什么我可以执行以下操作:

但我不能这样做:

以及如何修改 f2 以使其按预期工作?

0 投票
4 回答
3048 浏览

python - Scala 中是否有与 Python 更通用的 map 函数等价的功能?

我知道 Scala 的 Lists 有一个带有签名的map实现(f: (A) => B):List[B]和一个带有签名的foreach实现,(f: (A) => Unit):Unit但我正在寻找接受多个 iterables 的东西,就像 Python map接受多个 iterables 一样。

我正在寻找带有(f: (A,B) => C, Iterable[A], Iterable[B] ):Iterable[C]或等效签名的东西。有没有这样的图书馆或类似的类似方式?

编辑:

如下所示,我可以做

但这会在步骤之间创建一个临时列表。如果评论者会发帖,我可以给他投票(提示,提示),但还有其他方法吗?

0 投票
2 回答
380 浏览

haskell - Control.Applicative 中“纯”函数的命名

为什么将值提升到以pureControl.Applicative 命名的仿函数的函数?

0 投票
2 回答
4398 浏览

haskell - Haskell 中状态的 Functor / Applicative 实例

在阅读(并浏览了一些部分)Wadler 关于 monad 的论文之后,我决定更仔细地阅读这篇论文,为他描述的每个 monad 定义函子和应用实例。使用类型同义词

Wadler 用于定义状态 monad,我有以下内容(使用相关名称,以便稍后使用 newtype 声明定义它们)。

当我切换到在 newtype 声明中使用类型构造函数时,例如,

一切都崩溃了。一切都只是轻微的修改,例如,

然而,由于 lambda 表达式隐藏在该类型构造函数中,因此在 GHC 中没有任何运行。现在我看到的唯一解决方案是定义一个函数:

为了将 s 绑定到 'st' 并实际返回一个值,例如,

还有另一种不使用这些辅助功能的方法吗?

0 投票
6 回答
1252 浏览

haskell - 如何抽象一个常见的 Haskell 递归应用函子模式

在 Haskell 中使用 applicative functors 时,我经常遇到这样的重复代码:

在这个例子中,我想说:

但我不知道如何制作applyMany(或类似的东西)。我什至无法弄清楚类型是什么,但它需要一个数据构造函数、一个 Int (n)和一个应用n次的函数。在为 QuickCheck、SmallCheck、Data.Binary、Xml 序列化和其他递归情况创建实例时会发生这种情况。

那么我该如何定义applyMany呢?

0 投票
3 回答
886 浏览

list - 证明流的平等

我有一个数据类型

玫瑰树和应用实例

并且需要证明它的应用规律。然而,创建无限深、无限分支的树。因此,例如,在证明同态定律时

我以为证明平等

通过近似(或采取)引理会起作用。然而,我的尝试在归纳步骤中导致了“恶性循环”。特别是,减少

其中approx是近似函数。如果没有明确的共归纳证明,我如何证明相等?

0 投票
2 回答
1131 浏览

haskell - 应用风格的计算成本

我在我的网络应用程序中使用了一个小型数据库池。而这个特殊的功能:

可以用应用风格重写:

可以说它同样具有可读性并且更加优雅。所以很自然,我想这样写。但是数据库连接池应该很快,恐怕这种风格会引入不必要的开销。

所以我的问题是,在 Haskell 中使用应用函子会产生多少开销(如果有的话)?有没有基准?

0 投票
2 回答
1306 浏览

haskell - ap 如何以及为什么在 Haskell 中被定义为 liftM2 id

在试图更好地理解 Applicative 的同时,我查看了 <*> 的定义,它往往被定义为 ap,而它又被定义为:

查看 liftM2 和 id 的类型签名,即:

我不明白如何仅通过传入 id,类型签名的相关部分似乎从 转换(a1 -> a2 -> r) -> m a1m (a -> b)。我在这里想念什么?

0 投票
3 回答
644 浏览

haskell - 应用(和朋友)方法是否有人性化的名称?

我最近一直在使用应用程序(和替代),而让我感到沮丧的一件事是我对命名法缺乏了解。作为一个例子,我想能够说function name而不是star thingfor <*>>>=因此,以与read大致相同的方式,以下内容bind是否有更人性化的名称:

  • <*>- 申请?
  • <*& *>- 左右适用?
  • <$>- 地图?
  • <|>

同样从箭头

  • ***- 分裂?
  • &&&- 扇出?

如果有这些名称,我的搜索还没有发现它们。我知道这些条款可能不被接受,但如果有的话,我很想知道它们。

0 投票
1 回答
2415 浏览

haskell - Haskell:一些和很多

some有什么manyControl.Applicative.Alternative?如果我写类似的东西some $ Just 42,它似乎会导致无限递归,这似乎不是很有用......