Operator Precedence 테이블을 보면, 람다 표현식이이 모든 것에 적합한 지 혼란 스럽습니다. 테이블 1 ~ 25 (가장 높은 우선 순위부터 가장 낮은 우선 순위)에 번호 매기기를하면 람다 식 구성에 사용되는 두 개의 주요 토큰을 볼 수 있습니다. fun
은 비 연관 6이며 ->
은 오른쪽 연관 8입니다. 즉, fun ... -> ...
입니다. 우선 순위가 람다 식 (->
의 오른쪽)의 본문에서 역할을하는지 확실하지 않기 때문에 이것은 처음 이해의 실수 일 수 있습니다. 전체 표현식에서 우선 순위에 대해서만 생각할 수 있습니다. 그래서 나는 거기로 이동할 것이다. 이 표에 따르면 시퀀스 연산자 인 ;
은 fun
"연산자"보다 낮은 우선 순위 4를 갖습니다. 어느 내가 믿는이람다 표현 우선 순위를 이해할 수있게 도와주세요.
fun (x:int) -> x + 3 ; 2;;
이
((fun (x:int) -> (x + 3)) ; 2);;
에 동일해야하지만 실제로 내가 주어진 우선 순위의 규칙 내 해석을 명확히 어떤 도움을 주셔서 감사합니다
(fun (x:int) -> (x + 3 ; 2));;
에 해당 말한다 참조 된 테이블 대 람다 식의 실제 우선 순위 대! 감사!
하하, 나는 테이블이 좋지 않다는 것을 알고있었습니다. (그리고 스펙은 훨씬 도움이되지 않습니다)! 하지만 시퀀스 연산자를 사용하고 우선 순위 규칙을 자세히 이해하는 데는 매우 좋은 이유가 있습니다. F # 파서 도움을 전혀 보지 않거나 fslex/fsyacc에 익숙하지 않은 누군가가 완전히 잃어 버렸을까요? 우선 순위 규칙을 파악하기위한 다른 제안 사항이 있습니까? 감사! –
또한 "MU"가 무엇을 의미하는지 모르겠습니다. –
http://en.wikipedia.org/wiki/Mu_(negative) – Brian