问题标签 [alternative-functor]

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 回答
107 浏览

haskell - mzero 如何匹配保护类型签名?

我很难理解如何guard工作。为什么要进行类型检查?不能mzero返回一些m a地方a /= ()吗?

0 投票
1 回答
481 浏览

haskell - 为什么'Control.Applicative.Const'没有'Alternative'实例

有一个仿函数Monoid a => Monoid (Const a b)的实例Const来自Control.Applicative。还有一个例子Monoid m => Applicative (Const m)

因此,我希望还有一个Monoid m => Alternative (Const m)与 for 相一致的实例Monoid。这只是一个应该修复的遗漏,还是有更深层次的原因?

0 投票
1 回答
126 浏览

haskell - 是否有实例替代((->)r)?

我习惯于使用a <> bwhereabtake 参数。

为什么也没有a <|> b

0 投票
1 回答
226 浏览

haskell - 为什么 Haskell 的仿函数上没有幺半群的类型类?

我承认这个问题有点不具体,但我想知道为什么我从来没有在 Haskell 的仿函数上偶然发现一个类型类。我是否只是错过了它,这种缺席是否有充分的理由,还是完全是由于历史原因?恕我直言,下面的继承图看起来有点奇怪,没有右上角:

0 投票
1 回答
356 浏览

haskell - Haskell 类型类中的积和求和类型平行

似乎ApplicativeMonadArrow等类型类在AlternativeMonadPlusArrowPlus等类型类中分别具有某种等价的 sum 类型。例如,Applicative 和 Alternative 可用于定义以下内容:

但是,在所有这些情况下(以及使用ArrowChoice),产品类型类是 sum 类型类的先决条件。是否有依赖于先决条件类的类型类规则或常用函数?Typeclassopedia触及了这些关系,但不幸的我找不到任何明确的依赖原因。

0 投票
1 回答
536 浏览

haskell - 为什么 Alternative 类型类需要是 Control.Applicative 的子类

Haskell 提供了一个标准类型类“Alternative”,它有效地<|>为任何类型的应用程序提供了操作符。

据我了解,Alternative 被认为是 Applicative 上的 Monoid,但是该<|>运算符似乎在许多不是 Applicative Functors 的类型中也完全有意义,并且不需要对 Applicative 类型类有任何特定依赖它才能正常工作。

为什么 Alternative 需要成为 Applicative 的子类是否有原因,如果是这样,是否有标准类型类来定义非应用类型的类似功能?

0 投票
3 回答
272 浏览

haskell - <|> 的替代 IO 错误

我将运算符<|>用于:

但是当我尝试编译它时,我得到:

这个错误对我来说有点模糊。知道如何解决吗?(顺便说一句,从这个回复中得到一些见解:对“替代”类型类的含义及其与其他类型类的关系感到困惑

0 投票
1 回答
324 浏览

haskell - 我们可以用 Alternative 做什么,但不能用 Monoid 做什么?

我读了为什么是 MonadPlus 而不是 Monad + Monoid?我理解理论上的区别,但我无法弄清楚实际的区别,因为对于 List 它看起来是一样的。

是的。也许有不同的实现

但是我们可以像 Alternative 一样实现 Maybe Monoid

那么,有人可以展示解释Alternative和Monoid之间实际区别的代码示例吗?

这个问题不是为什么 MonadPlus 而不是 Monad + Monoid 的重复?

0 投票
1 回答
220 浏览

haskell - 寻找“if px then x else empty”结构的概括

我有几个片段感觉它们在做同样的事情,但我并不完全相信有一个通用的结构可以处理它们。在一个地方,我有

这可能在使用中看起来像

在另一个,我有非常相似的

相反,这看起来像

两者都根据某些谓词检查值是否正确,如果不是,则返回默认的“空”值。不过有一点不同——这意味着第二个函数可以重写为

为了使它们更相似,将“解包”的责任Maybe放在谓词上。有了这个新定义,这两个功能都属于

所以,我的问题是,

这是否bool x empty (p x)以某种形式存在,所以我不必自己实现这个功能?内联的问题bool x empty (p x)在于,就我而言,两者px非常长。

0 投票
2 回答
599 浏览

parsing - 使用替代的纯应用解析器

在上一篇文章中,一位用户为 Haskell 提供了一个纯应用解析器的实现(代码最初来自这里)。下面是该解析器的部分实现:

类型:

实例:

一些示例解析器:

不幸的是,我很难理解如何使用这个解析器实现。特别是,我不明白Char -> f ()应该/可能是什么以及如何使用它来进行简单的解析,例如从输入字符串中额外增加一个数字。如果可能的话,我想要一个具体的例子。有人可以阐明一下吗?