다음의 모든 언어에서 값 3을 산출하는 것이 표준입니까?뺄셈 - 평가 순서
Print(6 - 2 - 1)
즉, "6 - 2"이전에 "2 - 1"로 평가할 언어가 있습니까?
본인은 본능적으로 괄호 ((6 - 2) - 1)를 삽입 할 수 있도록하고 싶습니다. LISP의 악몽에 빠지게 만듭니다.
감사
다음의 모든 언어에서 값 3을 산출하는 것이 표준입니까?뺄셈 - 평가 순서
Print(6 - 2 - 1)
즉, "6 - 2"이전에 "2 - 1"로 평가할 언어가 있습니까?
본인은 본능적으로 괄호 ((6 - 2) - 1)를 삽입 할 수 있도록하고 싶습니다. LISP의 악몽에 빠지게 만듭니다.
감사
일반적으로 여러 연산의 우선 순위가 같으면 산술 연산과 마찬가지로 왼쪽에서 오른쪽으로 계산됩니다. 나는 모든 사람들에 대한 조사를하지 않았기 때문에 모든 언어를 말하고 싶지는 않을 것이다. 나는 새로운 언어를 시도하기 위해 조심스럽게 문서를 읽을 것입니다.
당신이 왼쪽에서 오른쪽 연관성 (오른쪽에서 왼쪽으로 연관성 반대)합니다.
대부분의 언어는 산술 연산과 왼쪽에서 오른쪽으로 연관되어 있습니다.
필자가 아는 한, 뺄셈은 항상 왼쪽 연관성을 띄게됩니다 (분명한 이유는 예상대로입니다). 그렇지 않은 언어가 명시 적으로있을 수 있지만, 산술이 거의 항상 예상대로 작동한다는 것은 안전한 가정입니다.
내가 아는 모든 언어는 예상 된 순서대로 왼쪽에서 오른쪽으로 평가합니다. 그러나, 나는 이것을 확인하기 위해 당신이 일하는 언어에 관계없이 빠른 테스트를 해보길 권한다.
스몰 토크에서는 수학적 우선 순위가 없습니다.
수학 연산자는 메서드 mames이므로 우선 순위는 다른 메서드 이름처럼 취급됩니다. 예는 예상대로 평가되지만 예를 들어 1 + 2 * 3
은 7
이 아닌 9
이됩니다.
반례를 언급하기 위해 메모리가 제공되면 APL은 엄격하게 올바른 연관성을 갖기 때문에 6-2-1은 5로 평가됩니다. APL 또는 그 부속 장치 중 하나를 설치 한 사람이 내가 틀렸다면 우리를 바로 잡으십시오.
감사
나는 1 년 된 대답에 대한 의견을 게시하고 있다고 믿을 수는 없지만 당신이 옳았다면, APL 방언 (J로 검증 됨)에서 5로 평가 될 것입니다. –
정지 걱정하고 연산자 우선 순위를 신뢰합니다. 표준 수학 연산자와 다른 언어는 거의 없습니다. 괄호를 사용하는 장소는 우선 순위 규칙이 무엇인지 명확하지 않은 경우입니다. 표준 수학 연산자를 사용하면 분명합니다.
제가 알고있는 유일한 언어 가정은 우선 순위가 있지만 표준 수학 규칙을 따르지 않는 언어는 APL 제품군, 특히 K 언어입니다. 이 가족은 수학적으로 발명 된 연산자가 많이 있으며 오른쪽에서 왼쪽으로 엄격하게 평가됩니다. 하지만 이러한 유형의 언어를 다루지 않으면 걱정하지 마십시오.
일부 작업에는 해당되지만 다른 작업에는 적용되지 않습니다. 예 : C와 같은 언어의 대입 연산자는 오른쪽에서 왼쪽으로 계산됩니다 :'x = y = 3'은'(x = y) = 3'가 아니라'x = (y = 3)'로 해석됩니다. 언어에 지수 연산이 있으면 일반적으로 오른쪽으로도 이동합니다. –