モナドを使用してアプリケーションとファンクタを使用するときにコードが似ているので、>>=
の代わりに=<<
を使用しています。私も*>
/>>
の代わりに<*
を使っています。しかし、私は、<*
が*>
でないことに気付きました。何が=<<
にありますか?>>=
です。例えばhaskellの>>演算子の逆数
:
print 5 <* print 6
は私を与える:
私は呼ばれてprint 6
で、周りに他の方法を印刷するためにそれらを期待していた
5
6
、6を印刷した後、その結果()
を取得投げ捨ててprint 5
と呼んでください。
<*
と*>
のように再生した後は、戻り値のみが異なるように見えますが、機能がどのように組み合わされているかといったようなものではありません。一方、=<<
は、>>=
の適切なフリップであり、左から右に固定されたスイッチを含む。
このケースだった、なぜ私は思っていた(>>=
が後方にあるが、それは何らかの形で>>=
と<*>
の型シグネチャが反転しているにもかかわらず、ではない後方、<*>
<*
*>
組み合わせ、とのより良いフィットのように思えます)。また、私が使うことができる<<
スタイルの演算子があるかどうか疑問に思っていました。
=<<
の場合、左辺と右辺の組み合わせは違いがありますが、括弧をどこに置いても同じように見えますが、公平にテストしただけですが簡単な例。
可能な複製:http://stackoverflow.com/questions/14176667/why-is-there-no-in-the-haskell-standard-library –