更改
跳到导航
跳到搜索
←上一编辑
Functor, Applicative 和 Monad
(查看源代码)
2021年7月11日 (日) 04:46的版本
添加637字节
、
2021年7月11日 (日) 04:46
无编辑摘要
第1行:
第1行:
[[Category:Haskell]]
[[Category:Haskell]]
+
== Functor ==
+
+
<code>Functor</code> 可被想象成 Mappable。
+
+
== Applicative ==
+
+
== Monad ==
+
+
=== 相关函数 ===
+
+
;<code>(>>=)</code>: bind
+
;<code>(>>)</code>: then 运算符。忽略上一个 Monad 的结果
+
;<code>(>=>)</code>: monad 复合,<code>(bs >=> cs) a</code> 可理解为 {{code|haskell|do { b <- bs a; cs b }<nowiki/>}}
+
;<code>(<=<)</code>: <code>flip (>=>)</code>,就像 <code>(.)</code> 运算符<ref>[[wikibooks:Haskell/Understanding_monads#Monadic_composition]]</ref>
+
== 关系 ==
== 关系 ==
第28行:
第43行:
</syntaxhighlight>
</syntaxhighlight>
−
但由于 <code>return</code> 是 <code>Monad</code> 版本的 <code>pure</code>,<code>ap</code> 是 <code>Monad</code> 版本的 <code>(<*>)</code>,为了方便也可如下实现
+
但由于 <code>return</code> 是 <code>Monad</code> 版本的 <code>pure</code>,<code>ap</code> 是 <code>Monad</code> 版本的 <code>(<*>)</code>,为了方便也可如下实现
<ref>[[wikibooks:Haskell/Understanding_monads#liftM_and_Friends]]</ref>
<syntaxhighlight lang=haskell>
<syntaxhighlight lang=haskell>
第42行:
第57行:
fmap = liftM
fmap = liftM
</syntaxhighlight>
</syntaxhighlight>
+
+
== 参考资料 ==
+
+
<references />
Weirane
行政员
、
管理员
528
个编辑
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
特殊页面
可打印版本