Kdb 有人能解释一下在k3中应用函数的这种怪癖吗?

Kdb 有人能解释一下在k3中应用函数的这种怪癖吗?,kdb,Kdb,有人能给我解释一下k3的这种行为,或者给我指出正确的方向吗?我在用科纳 > (1e2>+/-1#){x,1+-1#x}/1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 6

有人能给我解释一下k3的这种行为,或者给我指出正确的方向吗?我在用科纳

>  (1e2>+/-1#){x,1+-1#x}/1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
>  ((1e2)>-1#){x,1+-1#x}/1
1
具体来说,为什么
(1e2>-1#)
((1e2)>-1#)
不能像
(1e2>+/-1#)
那样工作。我觉得很困惑,因为在我看来,
+/-1
-1
是一样的

(1e2>+/-1#){x,1+-1#x}/1
这将继续对结果(从1开始)应用函数
{x,1+-1#x}
,直到
(1e2>+/-1#)
conion变为真他在这里担任过话务员

函数
{x,1+-1#x}
只是获取列表的最后一个元素,向其中添加1,然后将其追加到列表的末尾。
(1e2>+/-1#)
是检查100是否大于列表中最后一个元素的条件。

我应该更好地表达我的问题,但是为什么
((1e2)>-1#)
不是有效条件?该条件应该返回布尔原子(1b或0b),-1#返回计数1的列表(而不是原子)。因此,如果您执行(1e2)>(任何列表),它将返回一个列表,因此不是有效的条件基本上将计数1的列表转换为原子。