私はモナドについて学んでいて、いくつか質問があります。
これが私が今いる場所です。私が間違っているところを修正してください。
>>=
記号は中置演算子です。中置演算子は、2 つの引数 (左側と右側) を取り、値を返す関数です。>>=
シンボルはバインド演算子と呼ばれ、署名がありますMonad m => m t -> (t -> m u) -> m u
。ただし、タイプはここに並んでいないようです。type の値を取得しm t
、2 番目の引数はt
. (ドットを接続する方法がわかりません。)これは、 bind 関数がを取得して関数に渡すために、何らかの方法で
m
からを削除できることを意味する必要があります。m t
t
ここに私の質問があります:
そのようなバインド オペレーター内でのみ可能なもの
m
からを削除する機能です。m t
このバインド オペレーターには特別な特権などがありますか?状態の変化と何の関係がありますか? モナドの目的は、副作用を「ラップ」して、プログラムの残りの部分から分離することだと私は理解しています (私はそう思います)。しかし、これにおける bind オペレーターの役割は何でしょうか?