대괄호가 아니라 괄호보다, 함수 호출 인수에 사용되는 작업을 수행합니다. 그래서 위와 같이 해석되고있다 :
sum[(til 100) where 000011110000b]
그리고 22로 평가하는 이유는 5, 6, 7, 목록 til 100
, 즉의 8 값 (의 합계입니다 즉 당신은 아마 지금 볼 수 있습니다 0 ... 99), where
당신이 발견 한 것 등의 기능을 호출 할 때, 당신은 대괄호를 생략 할 수 있습니다 000011110000b
q)til[100] where 000011110000b
4 5 6 7
부울 목록을 사용하여 til 100
에 색인되어 있기 때문에, 그러나 그렇게 할 때 의도 한대로 해석/해석 될 수 있어야합니다. 일반적으로 코드는 에서 오른쪽에서 왼쪽으로이므로이 경우 (til 100) where 000011110000b
이 먼저 평가되고 그 결과가 sum
함수로 전달됩니다.
에 관해서는 오른쪽에서 왼쪽으로 생각하면 통역사는 where 000011110000b
의 결과를 4590
함수로 전달하려고합니다. 4590
은 kdb의 명명 된 함수가 아니지만 IPC, 즉 TCP를 통해 다른 kdb 프로세스에서 명령을 실행하는 데 사용되는 형식입니다. 따라서 kdb가 OS 파일 설명자 번호 4590 (유효한 TCP 연결과 거의 일치하지 않음)을 사용하여 where 000011110000b
명령을 실행하도록 알려줍니다. 자세한 내용은 여기의 '메시지 형식'섹션을 참조하십시오. http://code.kx.com/q/tutorials/startingq/ipc/