适用于Monoidal Functor:
mappend :: f -> f -> f
$ :: (a -> b) -> a -> b
<*> :: f(a -> b) -> f a -> f b
Run Code Online (Sandbox Code Playgroud)
但是我没有在应用类型类的定义中看到有关Monoid的任何参考,你能告诉我为什么吗?
定义:
class Functor f => Applicative (f :: * -> *) where
pure :: a -> f a
(<*>) :: f (a -> b) -> f a -> f b
GHC.Base.liftA2 :: (a -> b -> c) -> f a -> f b -> f c
(*>) :: f a …Run Code Online (Sandbox Code Playgroud) 试图扩大我对Haskell中符号的理解:
($) :函数应用程序运算符(允许您在函数上应用参数)(&) :功能应用程序运算符的翻转版本? (&) = flip ($)(<>) :关联运算符(您可以在半群和Monoid中找到它)(<$>):将功能应用程序($)移到函子结构上(<&>) :翻转的函子图我们可以在(*)和之间建立链接(<*>)吗?
我不明白的意思*实际上是...
haskell naming-conventions operators category-theory applicative
在Haskell中,为什么mappend(来自类Monoid)的中缀别名<>而不是+?代数课程+通常用于幺半群的二元算子.