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

(1e2>+/-1#) conitionが真になるまで(1から始まる)結果に機能{x,1+-1#x}を適用し続けます。 /ここでオーバー演算子として動作しています。

機能{x,1+-1#x}は、リストの最後の要素を取り、それに1を加えてリストの最後に追加します。 (1e2>+/-1#)は、100がリストの最後の要素より大きいかどうかをチェックする条件です。

+0

私は自分の質問をうまく表現するべきですが、なぜ((1e2)> - 1#) 'が有効な条件ではないのですか? –

+0

条件はブール型アトム(1bまたは0b)を返さなければなりません。-1#はカウント1(アトムではありません)のリストを返します。したがって、(1e2)>(任意のリスト)を実行すると、リストが返されるため、有効な条件ではありません。 + /基本的にカウント1のリストをアトムに変換します。 – Akash

+0

追加ポイント:+ /は効果的に合計と同じです – terrylynch

関連する問題