2017-07-16 37 views
1

考慮:所有列表項最多,幷包括,第一個重複項目

x =. 0 1 2 3 4 1 3 4 99 
v =. [ {.~ (>: @ i.&1 @ (#@~. = #\)) 
v x NB. => 0 1 2 3 4 1 

的行爲是正確的。但正如你所看到的,v是可恥的冗長。有更好的解決方案嗎?

+0

看來你的'v'不適用於所有情況(一個錯字?)。 '0(= i.1:)#。 Eelvex

+0

順便說一句,我喜歡這種類型的問題,我不認爲它適合stackoverflow;它似乎太開放式結束了,也許用更具體的東西來回答一些問題 – Eelvex

回答

5

你想要的單子~: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]#不使用#\。它太可愛了,很難維護,並且不會被特殊代碼優化器識別。
  • 不要(在一個明確的背景下除特殊情況外,並始終在本地)分配給該名xyuvm,或n
+0

像往常一樣,只是醫生所訂購的東西,謝謝丹 – Jonah

+0

@Jonah NP。下一次你有代碼可以工作,但你擔心美觀,請問[codereview.se]而不是SO。順便說一句,我保留意見,以回答你的2-arg do-while問題,但沒有時間 –

+0

丹,是的,這確實屬於代碼審查。Tbh,我主要是在這裏發佈它,因爲我知道你會看到它:)不知道你是否使用CR – Jonah

相關問題