为什么所有被连接的列表文字都必须在 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
这是关于什么的?
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