数学カフェのLTで話す予定でしたが、使う機会がなくなったので公開します。 Haskellにおけるモナドとは HaskellではMonadという型クラスでモナドを表現しています。この型クラスは return :: a -> m a 、 join :: m (m a) -> m a 、そして fmap においてモナドが表現されています。色んな人が色んな場で説明していることですから、今さらここで議論を掘り返す必要はないでしょう。 モナドには []、Maybe、State s、Cont r、Reader r、Writer w、IO、などがあります。しかし、みなさんはそれで満足でしょうか? そんなモナドで大丈夫ですか? Haskellでもっとモナド モナドをさらにこじらせた人は、 Free モナドや Codensity モナドなどに手を出すでしょう。これらは大変便利なものですが、その珍しさ故これまた
![モナドモナド (LT没ネタ) - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/441272cdfc142ddeefc2c3e1f18008a334e11fd3/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgzJUEyJUUzJTgzJThBJUUzJTgzJTg5JUUzJTgzJUEyJUUzJTgzJThBJUUzJTgzJTg5JTIwJTI4TFQlRTYlQjIlQTElRTMlODMlOEQlRTMlODIlQkYlMjkmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWExYzdiY2Q5ZDQ5MjYwNWI4YjUyM2RhNzNhNTkwYjI1%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwaGlyYXRhcmEmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPThlNmQ4NDE4NDFiMTQ4ODZiZWFkZmZkMDU3ZDZkMGYx%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dc0edfc9f9353a4a1fd6c23cd0ce9930f)