2017-02-06 2 views
2

는 I는 XOR 연산자를 정의. Hansen & Rischel 따르면운영자 우선 순위와 연관

&& 연산자 이유

true .||. true && false 
    true .||. false && true 

각각 falsetrue를 반환 않는다 그러므로. 너무 || 연산자 (및 .||. 연산자를 통해 높은 우선 순위를 갖는다? 결과 의해 생성 된 것으로 보인다 (true .||. true) && false 대신에 true .||. (true && false)

+3

관련 항목 : http://stackoverflow.com/questions/7656054/how-to-do-boolean-exclusive-or (IMO의 더 나은 대안 인 <> 및 성능 고려 사항). – CaringDev

+2

논리 게이트의 교차 배선이 어떻게 든 눈을 까맣게합니다. 왜 안되니? (^^) = function true -> not | _ -> id', 우선 순위가 도움이되지 않더라도? – kaefer

+0

의견을 보내 주셔서 감사합니다. – Worice

답변

7

MSDN에 따르면, .||.은 패턴 |op (즉, 테이블에서 연산자 && 아래의 두 줄이고, 같은 줄에 &op<op이있는 파이프로 시작하는 선행 점을 무시합니다. 따라서 실제로는 보다 우선적으로 &&이됩니다.

F# spec은 섹션 4.4.2에서 동일한 것을 말하고 테이블 만 거꾸로 (가장 높은 것부터 가장 낮은 것까지) 있습니다.

읽고있는 책에 댓글을 달 수 없으며 편리하지 않습니다.

+0

감사합니다. 스포츠에 대해서, 나는 인용한다. "시스템은 운영자의 성격에 근거하여 선언 된 운영자의 우선 순위와 연관성을 결정한다.. ||. 기간은 이것에 아무런 영향을 미치지 않으므로, 우선 순위와 연관성은 .||는 ||와 동일합니다. ", p. 35. 오류라고 생각합니까? – Worice

+0

아니요, 절대적으로 옳습니다 :'. ||. '의 우선 순위는'|| .'와 같습니다. 이 책은 정확한 정보를 제공합니다. 올바르지 않은 것은'|| '의 우선 순위가'||'의 우선 순위와 같고 따라서'&&'의 우선 순위보다 낮다는 가정입니다. –

+0

알았습니다. 순진하게 구두점을 잘못 해석했습니다. 양해 해 주셔서 감사합니다. – Worice