문제
방금 J 언어를 집어 들기 시작했고 다음에 의해 혼란 스러워요.
1 2 +/@{ i.4
1 2
+/ 1 2 { i.4
3
@ 문서에서 "xu @ vy ↔ uxvy"
나는 단지 다른 말의 한 부분을 다른 사람에 대해 착각하고 있다고 생각하지만 그것을 알아낼 수는 없습니다.
또한 이름이 어떤 유형의 연설인지 어떻게 말합니까?
해결책
NB. 유 b. 0 순위를 반환합니다 유 NB. 동사의 순위는 한 번에 적용되는 주장을 결정합니다. NB. 모나디 딕 + y 원자에 적용됩니다. dyadic x + y 원자 쌍에 적용됩니다 + b. 0 0 0 0 NB. 모나디 딕 +/ y 그리고 dyadic x +/ y 무엇이든 신청 (무한 순위) +/ b. 0 _ _ _ NB. 모나디 딕 { y 원자의 어레이에 적용; NB. dyadic x { y 원자 쌍과 다른 것에 적용됩니다 { b. 0 1 0 _ NB. u @ v 순위가 있습니다 v +/@{ b. 0 1 0 _ NB. ~부터 1 2 { i.4 한 번에 원자를 반환하고 +/ 원자에서 작동합니다 +/"0 [ 1 2 { i.4 1 2 NB. u @: v 무한한 순위가 있습니다 +/@:{ b. 0 _ _ _ NB. +/ 모든 것에 적용됩니다 1 2 { i.4 한 번에 +/"_ [ 1 2 { i.4 3 NB. 암묵적 형태로의 기계적 번역 13 : '+/ x { y' [: +/ {
다른 팁
Wikipedia는 저의 편향된 견해로는 순위에 대한 괜찮은 글을 가지고 있으며 J.
그러나 원래의 질문에 답하기 위해 J의 추적 시설은 문법의 작동 방식을 이해하는 데 유용 할 수 있습니다.
require'trace'
trace '1 2 +/@{ i.4'
이렇게하면 구문 분석 프로세스를 단계별로 진행하여 각 생산 규칙에 의해 소비되는 단어와 각각의 결과가 생성됩니다.
아, 나는 그것을 알아 냈을 것 같아요. @: @대신 사용해야합니다.
1 2 +/@:{ i.4
3
내가 원했던 것입니다. 랭크에서 더 읽어야 할 것 같아요. @와 @의 유일한 차이점입니다.
제휴하지 않습니다 StackOverflow