问题标签 [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.
haskell - mzero 如何匹配保护类型签名?
我很难理解如何guard
工作。为什么要进行类型检查?不能mzero
返回一些m a
地方a /= ()
吗?
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
。这只是一个应该修复的遗漏,还是有更深层次的原因?
haskell - 是否有实例替代((->)r)?
我习惯于使用a <> b
wherea
和b
take 参数。
为什么也没有a <|> b
?
haskell - 为什么 Haskell 的仿函数上没有幺半群的类型类?
我承认这个问题有点不具体,但我想知道为什么我从来没有在 Haskell 的仿函数上偶然发现一个类型类。我是否只是错过了它,这种缺席是否有充分的理由,还是完全是由于历史原因?恕我直言,下面的继承图看起来有点奇怪,没有右上角:
haskell - Haskell 类型类中的积和求和类型平行
似乎Applicative、Monad和Arrow等类型类在Alternative、MonadPlus和ArrowPlus等类型类中分别具有某种等价的 sum 类型。例如,Applicative 和 Alternative 可用于定义以下内容:
但是,在所有这些情况下(以及使用ArrowChoice),产品类型类是 sum 类型类的先决条件。是否有依赖于先决条件类的类型类规则或常用函数?Typeclassopedia触及了这些关系,但不幸的是我找不到任何明确的依赖原因。
haskell - 为什么 Alternative 类型类需要是 Control.Applicative 的子类
Haskell 提供了一个标准类型类“Alternative”,它有效地<|>
为任何类型的应用程序提供了操作符。
据我了解,Alternative 被认为是 Applicative 上的 Monoid,但是该<|>
运算符似乎在许多不是 Applicative Functors 的类型中也完全有意义,并且不需要对 Applicative 类型类有任何特定依赖它才能正常工作。
为什么 Alternative 需要成为 Applicative 的子类是否有原因,如果是这样,是否有标准类型类来定义非应用类型的类似功能?
haskell - 我们可以用 Alternative 做什么,但不能用 Monoid 做什么?
我读了为什么是 MonadPlus 而不是 Monad + Monoid?我理解理论上的区别,但我无法弄清楚实际的区别,因为对于 List 它看起来是一样的。
是的。也许有不同的实现
但是我们可以像 Alternative 一样实现 Maybe Monoid
那么,有人可以展示解释Alternative和Monoid之间实际区别的代码示例吗?
haskell - 寻找“if px then x else empty”结构的概括
我有几个片段感觉它们在做同样的事情,但我并不完全相信有一个通用的结构可以处理它们。在一个地方,我有
这可能在使用中看起来像
在另一个,我有非常相似的
相反,这看起来像
两者都根据某些谓词检查值是否正确,如果不是,则返回默认的“空”值。不过有一点不同——这意味着第二个函数可以重写为
为了使它们更相似,将“解包”的责任Maybe
放在谓词上。有了这个新定义,这两个功能都属于
所以,我的问题是,
这是否bool x empty (p x)
以某种形式存在,所以我不必自己实现这个功能?内联的问题bool x empty (p x)
在于,就我而言,两者p
都x
非常长。