2017-02-02 56 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

相關問題