为什么所有被连接的列表文字都必须在 kdb 中用括号括起来以防止类型错误,但最后一个可以不加括号?

Why must all list literals being concatenated be parenthesized in kdb to prevent type error, but the last one can be left unparenthesized?

这是关于什么的?

q)(42+2*til 10),(til 10),til 3
42 44 46 48 50 52 54 56 58 60 0 1 2 3 4 5 6 7 8 9 0 1 2
q)(42+2*til 10),til 10
42 44 46 48 50 52 54 56 58 60 0 1 2 3 4 5 6 7 8 9

q)(42+2*til 10),til 10,til 3 / til 10 is not a list?
'type
  [0]  (42+2*til 10),til 10,til 3 / til 10 is not a list?
                     ^
q)type til 10
7h
q)type (til 10)
7h

只是想知道解释器认为 til 10 在那里的是什么?显然只有最后一个列表可以跳过括号。这是为什么?出现什么求值顺序,产生什么类型?

口译员从右向左读。因此,10 在被传递到左侧的 til 之前,从 til 3 加入到结果列表中。放在括号中可以避免这种情况

q)10,til 3
10 0 1 2j
q)til 10 0 1 2j
'type
q)til[10],til 3
0 1 2 3 4 5 6 7 8 9 0 1 2j