相关疑难解决方法(0)

什么是免费monad?

我见过的长期免费单子弹出每一个 现在 随后一段时间,但每个人似乎只是使用/讨论这些问题没有给予它们是什么解释.所以:什么是免费的monads?(我会说我熟悉monad和Haskell的基础知识,但对类别理论只有非常粗略的了解.)

monads haskell free-monad

357
推荐指数
7
解决办法
5万
查看次数

应用变压器真的是多余的吗?

有很多关于Applicative 不需要自己的变压器类的讨论,如下所示:

class AppTrans t where
    liftA :: Applicative f => f a -> t f a
Run Code Online (Sandbox Code Playgroud)

但我可以定义似乎不是应用程序组合的应用变换器!例如,有效的:

data MStream f a = MStream (f (a, MStream f a))
Run Code Online (Sandbox Code Playgroud)

提升只是在每一步都执行副作用:

instance AppTrans MStream where
    liftA action = MStream $ (,) <$> action <*> pure (liftA action)
Run Code Online (Sandbox Code Playgroud)

如果f是一个应用程序,那么MStream f也是如此:

instance Functor f => Functor (MStream f) where
    fmap fun (MStream stream) = MStream $ (\(a, as) -> (fun a, fmap fun as)) <$> …
Run Code Online (Sandbox Code Playgroud)

haskell stream typeclass

22
推荐指数
1
解决办法
529
查看次数

标签 统计

haskell ×2

free-monad ×1

monads ×1

stream ×1

typeclass ×1