우선 순위와 결합 성은 문법이 처음으로 haskell 코드로 표현하려고 시도하는 것을 이해하는 데있어 큰 장애물이다. 예를 들어 하스켈 우선 순위 : 람다와 연산자
, 실험에 의해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)]
,536,
ghci에서 (>> =) 연산자에 대한 정보를 얻을 수 있습니다 (infixl 1 >> =).
하지만 운영자가 아니기 때문에 ->에 대한 정보가 없습니다.
여러분 중 누군가가이 문법을 쉽게 이해할 수 있도록 참조 할 수 있습니까?
에서 [하스켈 보고서] (http://www.haskell.org/onlinereport/haskell2010/haskellch3.html#x8-220003)는 Haskell 문법에 대한 명확한 참조입니다. BNF 문법은 아마도 여러분이 가지고있는 질문에 대해 약간 낮은 수준 일 것입니다. 질문...? –