이것은 매우 간단한 질문이지만 어디서나 답을 찾을 수없는 것 같습니다 - 숫자 목록을 목록 값의 합계에 매핑하는 것 (예 : 1 2 2 -> 이유는 - 0.2 0.4 0.4), 당신은 기능J의 함수 구성
func =: %+/
그러나 다만 numbers
이 작동하지 않는 번호의 목록입니다 %+/ numbers
를 작성을 작성할 수 있습니다? 왜 함수 구성 주위에 괄호를 써야합니까?
이것은 매우 간단한 질문이지만 어디서나 답을 찾을 수없는 것 같습니다 - 숫자 목록을 목록 값의 합계에 매핑하는 것 (예 : 1 2 2 -> 이유는 - 0.2 0.4 0.4), 당신은 기능J의 함수 구성
func =: %+/
그러나 다만 numbers
이 작동하지 않는 번호의 목록입니다 %+/ numbers
를 작성을 작성할 수 있습니다? 왜 함수 구성 주위에 괄호를 써야합니까?
는 J는 오른쪽에서 왼쪽으로의 모든 식을 계산 (이 괄호의 식을 평가하는 경우,이 - 및 다음가 좌측으로 계속 - 왼쪽에서 오른쪽).
예 :
1 - 2 - 3 - 4 - 5
3 NB. because it's: 1 - (2 - (3 - (4 - 5)))
%+/ 1 2 3
0.166667 NB. because it's: % (+/ 1 2 3) -> % (1 + (2 + 3))
(%+)/ 1 2 3
1.5 NB. because it's: 1 (%+) (2 (%+) 3)
또한 부사 분할하지 않는 것이 있습니다. 즉 /
은 단독으로 사용할 수 없습니다.
두 가지 규칙이 있습니다. 1. J의 표현식은 연관성을 나타내지 않습니다. 2. J에 동사가 표시되면 암시 적으로 동사가 추가됩니다. 이 괄호 본다 않는
%+/ 1 2 2 = % (+/ 1 2 2)!= (%+/) 1 2 2 and
func 1 2 2 = (%+/) 1 2 2 = 1 2 2 % (+/1 2 2) = 0.2 0.4 0.4, which is a hook.
J 위키에 대한 다음 두 개의 FAQ에 대한 답변을 통해 왜 그런지 설명 할 수 있습니다.