私は、文脈が一見ハスケルコードに表現しようとしていることを理解するために、優先順位と結合性が大きな障害となります。ハスケルの優先順位:ラムダと演算子
例えば、実験によって
blockyPlain :: Monad m => m t -> m t1 -> m (t, t1)
blockyPlain xs ys = xs >>= \x -> ys >>= \y -> return (x, y)
が、私は最終的にそれが意味だ、
blockyPlain xs ys = xs >>= (\x -> (ys >>= (\y -> return (x, y))))
の代わりとして働く
blockyPlain xs ys = xs >>= (\x -> ys) >>= (\y -> return (x, y))
:
*Main> blockyPlain [1,2,3] [4,5,6]
[(1,4),(1,5),(1,6),(2,4),(2,5),(2,6),(3,4),(3,5),(3,6)]
ghciから(>> =)の情報を演算子として取得できます(infixl 1 >> =)。
しかし、演算子ではないので、>についての情報はありません。
あなたの誰かがこの文法を理解しやすくするために参考にしてもらえますか?
[ハスケルレポート](http://www.haskell.org/onlinereport/haskell2010/haskellch3.html#x8-220003)はHaskell構文の決定的なリファレンスですが、おそらくBNF文法はあなたの質問に対して少し低レベルです聞いて...? –