2013-02-26 4 views
6

하스켈에서 연산자 우선 순위에 대한 규칙을 혼동합니다. 이것보다하스켈에서 연산자 우선 순위

*Main> 2 * 3 `mod` 2 
0 

다른 :
은보다 구체적으로, 왜입니까?

*Main> 2 * mod 3 2 
2 
+0

는 참조 [도입부 연산자 우위들 (http://stackoverflow.com/a/30288988/3041008) – mucaho

답변

13

함수 호출은 단단한 결합 등

2 * mod 3 2 

2 * (mod 3 2) 

동일합니다.

이제 mod을 삽입 형식으로 사용하면 우선 순위 7이 적용됩니다 ((*)도 있음). 이들이 동일한 precendence 있고, 왼쪽 연관되어 있기 때문에, 이들은 단지 좌측에서 우측으로 파싱된다

(2 * 3) `mod` 2 
+0

설명해 주셔서 감사합니다. :) –

2

2 * 3 = 6없고 나머지는 다음 mod 2 = 3 ... 그래서 6 mod 2 = 0가 당신의 대답이다. 두 번째 경우에 2 * 1 = 2mod 3 2의 결과를 2 * 수행하고 있습니다. 따라서 귀하의 대답은 2 ....입니다. 귀하의 운영자 우선 순위는 동일하게 유지되며, 귀하는 이에 대한 응답을 적절히 표시 할 수 있도록 정렬합니다. 어떤 역 따옴표가 없기 때문에 mod 여기 연산자로 사용되지 않는다는 것을 명심

+0

답변 해 주셔서 감사합니다! –