gpt4 book ai didi

haskell - 有 "ApplicativeIO"类吗?

转载 作者:行者123 更新时间:2023-12-04 04:25:29 26 4
gpt4 key购买 nike

在 Hackage 中是否有类似于 MonadIO 的类型类?但是对于 Applicative s, 可以轻松举起 IO"applicative composition stacks" 的操作基于 IO ?

如果存在这样的类型类,它会被 Applicative-Monad Proposal 的实现所淘汰吗? ?该提案是否涉及对 Monad 的放宽? MonadIO 的约束?

最佳答案

a related discussion on haskell-cafe一年前。在 Reddit comments我给了an example从 IO 到另一个单子(monad)的自然变换 (g) 是一个应用仿函数态射(即满足 Gabriel Gonzalez 提到的定律)但不是单子(monad)态射(它不满足与 >>= 相关的附加定律) )。因此,即使在使用 AMP 的世界中,ApplicativeIO mMonadIO m是真正不同的东西,即使 mMonad !

在一个理想的世界里,你会有这样的设置:

class Functor f => FunctorIO f where
liftIO :: IO a -> f a
-- such that liftIO is a natural transformation (automatic, by parametricity)

class (Applicative f, FunctorIO f) => ApplicativeIO f where
-- ... and liftIO is an applicative functor morphism

class (Monad f, ApplicativeIO f) => MonadIO f where
-- ... and liftIO is a monad morphism

和魔法仙女会定义 ApplicativeIOMonadIO恰好满足相应定律时的实例。

关于haskell - 有 "ApplicativeIO"类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26064297/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com