问题标签 [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.
haskell - 有人能解释一下这段代码中出现 Applicative 实例的位置吗?
我可以看到它有效,但我不明白Applicative
(or Functor
) 的实例来自哪里。
haskell - 如何证明 monad 是函子和应用函子?
众所周知,Monad 在理论上是函子的子集,特别是应用函子,尽管 Haskell 的类型系统中没有指出。
知道这一点,给定一个 monad 并基于return
and bind
,如何:
- 导出
fmap
, - 导出
<*>
?
scala - 组合2个列表的元素
假设我们有两个列表:
我想要的是:List("a1", "b2", "c3")
也就是说,将 l1 的第 n 个元素与 l2 的第 n 个元素相加
实现它的一种方法是:
我只是想知道是否可以通过 Applicative 实现它。我试过了 :
但它提供了所有组合:
任何想法?
谢谢
贝努瓦
validation - 如何使用 scalaz 将函数组合到应用程序
在学习Scalaz 6时,我正在尝试编写返回验证的类型安全阅读器。这是我的新类型:
我有两个函数为整数和字符串(*)创建地图阅读器:
给定以下地图:
我可以写两个读者来检索姓名和年龄:
一切正常,但现在我想组合两个读者来构建一个Boy
实例:
我最好的看法是:
它按预期工作,但是对于两个级别的应用程序构建器来说,表达方式很尴尬。有没有办法让以下语法起作用?
(*) 完整且可运行的实现:https ://gist.github.com/1891147
更新:这是我在尝试上述行或 Daniel 建议时收到的编译器错误消息:
scala - 解释 scalaz-7 中的 Traverse[List] 实现
我试图了解scalaz-7traverseImpl
中的实现:
有人可以解释如何与List
交互Applicative
吗?最终,我希望能够为Traverse
.
haskell - 为什么导入 Control.Applicative 允许此错误代码进行类型检查?
我正在帮助一个朋友学习 Haskell,他最近创建了这样的代码,该代码在运行时检查并产生 CPU 燃烧循环。我对此完全感到困惑。
那不应该类型检查,但确实如此。正确的版本显然是:
令我感到奇怪和惊讶的是,无论是否导入 Control.Applicative,您都会得到不同的结果。如果不导入它,它不会输入检查:
我在 Control.Applicative 的源代码中没有看到 Monad 实例((->) String
,所以我猜测由于使用 Control.Category 或 Control.Arrow 会发生一些奇怪的事情,但我不知道。所以我想我有两个问题:
- 导入 Control.Applicative 的原因是什么?
- 当它进入无限循环时会发生什么?在这种情况下,Haskell 实际上试图执行什么?
谢谢,
haskell - 如何在haskell中映射元组的第一个元素
我正在尝试编写一个类似的函数
在这里,我正在尝试基于元组的第一个元素构建一个列表,但我不确定如何继续。我可以为非元组执行此操作,但不确定如何fst
在此构造中使用(如果我应该首先使用该函数)。
此函数将与另一个相同类型的函数交互,但处理输入的方式略有不同。我需要使用 fmap 和 ap 因为元组在Maybe
容器内
haskell - 类型类 MonadPlus、Alternative 和 Monoid 之间的区别?
标准库 Haskell 类型类MonadPlus
、Alternative
和Monoid
每个都提供了两个具有基本相同语义的方法:
- 空值:
mzero
、empty
或mempty
。 a -> a -> a
将类型类中的值连接在一起的运算符:mplus
、<|>
或mappend
。
这三个都指定了实例应遵守的这些法律:
因此,似乎这三个类型类都提供了相同的方法。
(Alternative
也提供some
and many
,但它们的默认定义通常就足够了,因此就这个问题而言,它们并不太重要。)
所以,我的疑问是:为什么有这三个极其相似的类?除了它们不同的超类约束之外,它们之间是否有任何真正的区别?
haskell - 在哪里可以找到应用函子的编程练习?
我一直在阅读有关应用函子的文章,尤其是在 McBride 和 Paterson 的 Functional Pearl 中。但是我想通过做一些练习来巩固我的理解。我更喜欢编程练习,但证明练习也可以。 哪些练习可以帮助我学习使用应用函子进行有效编程?
个人练习和其他地方列出的练习的指针一样都可以。