2017-02-02 18 views
0

有人可以向我解释k3的这种行为,还是指向正确的方向?我正在使用科纳。有人可以在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#在我看来是一样的。

回答

0
(1e2>+/-1#){x,1+-1#x}/1 

这保持上的结果将所述函数{x,1+-1#x}(从1开始),直到(1e2>+/-1#) conition变为真。 /在这里充当过度操作员。

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

+0

我应该更好地解释我的问题,但为什么'((1e2)> - 1#)'不是一个有效的条件? –

+0

该条件应返回布尔原子(1b或0b),-1#返回计数1(不是原子)的列表。所以如果你这样做(1e2)>(任何列表),它会返回一个列表,因此不是一个有效的条件。 + /基本上将计数1的列表转换为原子。 – Akash

+0

作为一个附加点:+ /实际上与sum相同 – terrylynch

相关问题