-
33 votesanswersviews
Monad对申请人有什么好处?
我读过this article,但最后一节并不明白 . 作者说Monad给了我们上下文敏感性,但是只使用Applicative实例就可以实现相同的结果: let maybeAge = (\futureYear birthYear -> if futureYear < birthYear then yearDiff birthYear futureYear else ye... -
9 votesanswersviews
<*>对于按表示法实现的列表 - 这不是“作弊”吗?
根据'Learn you a Haskell',列表的 <*> 的实现是: fs <*> xs = [f x | f <- fs, x <- xs] 我错了,还是基于 >>= 的这个含糖的monadic代码? 据我所知,应该可以仅使用 fmap 来实现<*>,因为应用的是Maybe的情况 . 如何仅使用 fmap 实现列表 <*&... -
1 votesanswersviews
如何在我的列表中实现Applicative,建模非确定性?
当我遇到_654182时,我在Haskell练习Functor / Applicative Functors Monads: 4)您已经了解了Monad实例如何用于处理可能失败的事物 . Monad的另一个用例是处理非确定性问题 . 模拟非确定性计算的最简单方法是使用列表 . 将列表视为包含某些计算的所有可能结果 . 使用众所周知的 Map 功能时,您正在应用的功能会生成所有可能输入的输出 .... -
12 votesanswersviews
我可以't understand Wikipedia'定义“applicative functor”
在Haskell中学习仿函数,应用函子和monad,我在Wikipedia找到了这个定义: 在函数式编程中,特别是Haskell,一个applicative functor是一个结构,就像一个没有连接的monad(return,fmap,join),或者像带有return的functor . 我无法理解:在我看来,将 return (即 pure )提供给仿函数并不足以获得一个应用仿函数,因为... -
11 votesanswersviews
Haskell中State的Functor / Applicative实例
在阅读(并略过一些部分)Wadler关于monad的论文之后,我决定更仔细地研究这篇论文,为他描述的每个monad定义函子和应用实例 . 使用类型同义词 type M a = State -> (a, State) type State = Int Wadler用来定义状态monad,我有以下(使用相关的名称,所以我可以稍后使用newtype声明定义它们) . fmap' :: (a -&... -
188 votesanswersviews
不是Functor / Functor / Applicative / Monad的好例子?
在向某人解释什么是类型类X时,我很难找到正好是X的数据结构的好例子 . 所以,我请求示例: 一个不是Functor的类型构造函数 . 一个类型构造函数,它是一个Functor,但不是Applicative . 一个类型构造函数,它是一个Applicative,但不是Monad . 一个Monad的类型构造函数 . 我认为Monad到处都有很多例子,但Monad的一个很好的例子与... -
15 votesanswersviews
如何证明monad是一个仿函数和一个应用函子?
Monad在理论上被认为是仿函数的一个子集,特别是应用仿函数,尽管它没有在Haskell的类型系统中指出 . 知道这一点,给定一个monad并基于 return 和 bind ,如何: derive fmap , derive <*> ? -
3 votesanswersviews
应用函子和monad之间的等价性
人们说monad是应用函子的扩展,但我不是以应用函子为例: (<*>) :: f(a->b) -> f a -> f b [(+3)] <*> [2,3,4] 现在,我也期望我可以做与monad相同的事情,这意味着我可以应用2个参数:一个上下文包含一个函数,另一个上下文来获取一个上下文 . 但对于monad,我不能 . 我需要的只是写一个像这样丑陋的函数... -
188 votesanswersviews
不是Functor / Functor / Applicative / Monad的好例子?
在向某人解释什么是类型类X时,我很难找到正好是X的数据结构的好例子 . 所以,我请求示例: 一个不是Functor的类型构造函数 . 一个类型构造函数,它是一个Functor,但不是Applicative . 一个类型构造函数,它是一个Applicative,但不是Monad . 一个Monad的类型构造函数 . 我认为Monad到处都有很多例子,但Monad的一个很好的例子与... -
188 votesanswersviews
不是Functor / Functor / Applicative / Monad的好例子?
在向某人解释什么是类型类X时,我很难找到正好是X的数据结构的好例子 . 所以,我请求示例: 一个不是Functor的类型构造函数 . 一个类型构造函数,它是一个Functor,但不是Applicative . 一个类型构造函数,它是一个Applicative,但不是Monad . 一个Monad的类型构造函数 . 我认为Monad到处都有很多例子,但Monad的一个很好的例子与... -
19 votesanswersviews
应用仿函数更有趣
Earlier我问过翻译monadic代码只使用Parsec的applicative functor实例 . 不幸的是,我得到了几个回复,回答了我真正问过的问题,但并没有给我太多的了解 . 那么让我再试一次...... 总结我到目前为止的知识,一个应用函子比一个monad更受限制 . 在“少即是多”的传统中,限制代码可以做什么会增加疯狂代码操作的可能性 . 无论如何,很多人似乎相信使用applic... -
6 votesanswersviews
如何在Scala中实现Future作为应用?
假设我需要运行两个并发计算,等待它们,然后组合它们的结果 . 更具体地说,我需要同时运行 f1: X1 => Y1 和 f2: X2 => Y2 ,然后调用 f: (Y1, Y2) => Y 以最终获得 Y 的值 . 我可以创建未来的计算 fut1: X1 => Future[Y1] 和 fut2: X2 => Future[Y2] ,然后使用monadic组合将它们... -
29 votesanswersviews
使用返回未来的函数遍历列表和流
简介 Scala的 Future (new in 2.10和now 2.9.3)是一个应用函子,这意味着如果我们有traversable type F ,我们可以将 F[A] 和函数 A => Future[B] 转换为 Future[F[B]] . 此操作在标准库中可用作Future.traverse . Scalaz 7还提供了一个更通用的 traverse ,如果我们从scala... -
20 votesanswersviews
类型的函数和应用程序(* - > *) - > *
我遇到了一种情况,我的代码将从使用 Functor 和 Applicative 类似的抽象中受益,但对于类型 (* -> *) -> * . 定义一个更高级的仿函数可以像_2935073这样完成 class HFunctor f where hfmap :: (forall x. a x -> b x) -> f a -> f b 但 Applicativ... -
0 votesanswersviews
为列表实现sequenceAL
Typeclassopedia(Haskell Wiki)在Applicative的部分进行了这个练习: Implement a function sequenceAL :: Applicative f => [f a] -> f [a] 我只能这样做,如果使用do notation(要求将Monad f添加到上下文中: sequenceAL :: (Monad f, Applica... -
1 votesanswersviews
在Haskell中的ApplicativeDopragma和Applicative Functor
Functor, Applicative, and Monad的一个例子略有变化: {-# LANGUAGE ApplicativeDo #-} import Safe (readMay) -- import Control.Applicative ((<$>), (<*>)) displayAge maybeAge = case maybeAge of ...