이것은 포옹에 알려진 문제입니다. 식에 Hugs 98 Users Guide 섹션에서 : 포옹에
, 표현은 fexp
(또는 case
또는 do
)이어야합니다. (a+b+)
및 (a*b+)
과 같은 법적 표현이 거부됩니다.
여담 경고
어쩌면이 FUZxxl
자신의 의견에 대해 얘기했다 무엇인가?
import Prelude hiding ((!!))
infixr 5 !! -- infixr will make it right associative
(!!) a b = head . drop b $ a
지금 그 라인이
ghci
에 하나가 작동하지 않습니다
는 ghc
에 자신 (!!)
함수를 정의 시도하고 마우스 오른쪽 연관 정착을 설정!
ghci> :t ([[0]] !! 0 !!)
<interactive>:1:1:
The operator `!!' [infixr 5] of a section
must have lower precedence than that of the operand,
namely `!!' [infixr 5]
in the section: `[[0]] !! 0 !!'
때문에 (!!)
는 infixr
설정 이제 마우스 오른쪽 연관성을하고있다. infixl
을 사용하면 해당 줄이 올바르게 작동합니다.
이것은 질문 한 것과 완전히 별개의 문제입니다. Hugs의 문제는 (a+b+)
과 같은 표현식을 구문 분석하지 않는다는 점에서 왼쪽 대 오른쪽 결합에 관한 것입니다.
잘 모르겠습니다. 나는 그것이 하스켈 표준의 다른 해석이라고 생각한다. 이것은 실제로 둘 이상의 운영자가 최하위에 나타나는 모든 섹션에서 발생합니다. – fuz