-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Topic Request: 誤解から学ぶモナド #206
Comments
そもそも私はモナドを本当に理解しているのか謎ですが、 |
個人的な印象程度の話ですが,
という話と,
という話は別で,それを一緒に考えるから混乱するんじゃないかと思いますね 「モナド」を主語に持ってきてメタファーの話をするからメタファーの話が敬遠されるわけですが,list / maybe に限った話で言えばモナドの操作がコンテナの操作に対応するというのは間違っていないと思いますし,理解の助けにもなると思います.ただ,モナド自体が Haskell に導入されたのは「モナドが与えられた時,それを元にある計算体系からそれを enrich した計算体系が自動的に考えられる (do expression)」の方がモチベーションとなっていると思っていて,そっちの視点で見た時,モナド自体に意味があるのではなくそれを元に enrich した計算体系の方に意味があるので (コンテナ系は基本非決定的計算への拡張になりますね),「モナド」を主語に持ってくると話がずれるということだと思いますね (メインは「拡張された計算体系」であって,「モナド」ではない場合が多いということですね) 個人的な印象の話なので,実際に『モナド自体が Haskell に導入されたのは「モナドが与えられた時,それを元にある計算体系からそれを enrich した計算体系が自動的に考えられる (do expression)」の方がモチベーションとなっていると思っていて』とかはソースがあるわけではないですが |
「モナドは上から下へ実行される計算の列である」については、「上下」をデータの依存関係と好意的に解釈すると反論が難しいですね。Control.Applicative.Backwardsと比較すると面白い解説ができるかもしれません |
私は「どのようにして私がモナドを誤解してきたか」という記事を執筆していたのですが、私自身がどんな誤解をしていたのかを既に記憶していないことに気が付いて執筆を諦めました。ここで行いたかった試みは、「モナドは箱・コンテナである」の節のように、不正確な理解について、どんなことを根拠としているのかと、どこが間違っているのかを、具体的に分析することです。
このような記事の場合は、複数人が自分の経験を持ち寄れば、有用な記事になるのではないかと思い付いたので、ここに投げておきます。
書きかけの内容
参考資料
The text was updated successfully, but these errors were encountered: