x =. 0 1 2 3 4 1 3 4 99
v =. [ {.~ (>: @ i.&1 @ (#@~. = #\))
v x NB. => 0 1 2 3 4 1
的行爲是正確的。但正如你所看到的,v
是可恥的冗長。有更好的解決方案嗎?
x =. 0 1 2 3 4 1 3 4 99
v =. [ {.~ (>: @ i.&1 @ (#@~. = #\))
v x NB. => 0 1 2 3 4 1
的行爲是正確的。但正如你所看到的,v
是可恥的冗長。有更好的解決方案嗎?
你想要的單子~:
(nub sieve):
v =: {.~ 1 + 0 i.~ ~:
x =: 0 1 2 3 4 1 3 4 99
v x
0 1 2 3 4 1
代碼回顧:
[email protected]#
不使用#\
。它太可愛了,很難維護,並且不會被特殊代碼優化器識別。x
,y
,u
,v
,m
,或n
。
看來你的'v'不適用於所有情況(一個錯字?)。 '0(= i.1:)#。 \(= /〜)x'爲您提供第一個重複項目的索引。或許,我會嘗試從x#〜}開始:1,*。/ \ + /「1 \(= /〜。)x',看看我能做些什麼 – Eelvex
順便說一句,我喜歡這種類型的問題,我不認爲它適合stackoverflow;它似乎太開放式結束了,也許用更具體的東西來回答一些問題 – Eelvex