ハスケルは、モナドの周りにいくつかの命名規則を確立しているようです。モナドの命名規則は何ですか?
例:
- モナド変圧器の名前得るために端部に
T
を付加 - モナド計算実行するrunXXX
を使用して(例えばReader
>ReaderT
) - (例えば
runST
をrunReader
) liftXXX
XXX
他の命名規則はありますか? m :: X a
はX
モナドを実行し、モナドの結果、a
と一緒に「副作用」を返します
ハスケルは、モナドの周りにいくつかの命名規則を確立しているようです。モナドの命名規則は何ですか?
例:
T
を付加 - モナド計算実行するrunXXX
を使用して(例えばReader
>ReaderT
)runST
をrunReader
)liftXXX
XXX
他の命名規則はありますか? m :: X a
はX
モナドを実行し、モナドの結果、a
と一緒に「副作用」を返します
runX m
。
は計算を実行し、結果をa
に返します。
execX m
は、計算を実行し、結果ではなく「副作用」を返します。
リフトにはさまざまな味があり、あまりにも手間がかかりすぎて、私の答えがわからないことがあります。あなたはおそらくlift
とliftIO
を知っていて、liftWith
とliftBaseWith
のような他の変種を知っていて/最終的に探しているはずです。たとえば、EZYangのトピックに関する投稿を参照してください。
モナド名の後にT
を付加すると、トランスを意味します。関数名の後にM
を追加すると、モナドであることを意味します。 _
を付けると、結果は無視されます。
他のすべての接尾文字は "use hoogle"を意味します。 http://www.haskell.org/ghc/docs/latest/html/libraries/base/Control-Monad.html#g:2が持つコンビネータの命名規則のいくつかを説明する短い補遺として
m接頭辞とは対照的にM接尾辞が適切である場合に関係します。 –