相关疑难解决方法(0)

monad的例子,其应用部分可以比Monad部分更好地优化

在一个讨论中,我听说Applicative一些解析器的接口以不同的方式实现,比它们的Monad接口更有效.原因在于Applicative,在整个有效计算运行之前,我们事先知道所有"效果".对于monad,效果可能取决于计算过程中的值,因此无法进行此优化.

我想看到一些很好的例子.它可以是一些非常简单的解析器或一些不同的monad,这并不重要.重要的是Applicative这样的monad 的接口符合它的returnap,但使用Applicative产生更高效的代码.

更新:只是为了澄清,在这里我对不能成为monad的应用程序不感兴趣.问题是关于两者的事情.

monads performance haskell applicative

30
推荐指数
3
解决办法
1207
查看次数

Haskell - 你有一个不是应用函子的monad吗?

吉姆·杜伊(Jim Duey)在幻灯片13中的这组幻灯片中 - 他建议所有Monad都是适用的编织者.

在此输入图像描述

在Haskell 7.7编译器输出中 - 我看到以下(另一个例子在这里):

'Parser'是Monad的一个实例,但不是Applicative - 根据Applicative-Monad提案,这将成为GHC 7.10中的错误.

这是否意味着Haskell编译器目前容忍Monad不是应用程序的编写器 - 但计划是纠正这个?

monads haskell fam-proposal

8
推荐指数
1
解决办法
1567
查看次数

标签 统计

haskell ×2

monads ×2

applicative ×1

fam-proposal ×1

performance ×1