我正在努力學習Clojure和函數式編程,爲此我打算從Codingbat解決練習。當我必須從另一個子數組中找到子數組[1 2 3]時,我被卡住了。來自頁面:Clojure子陣列
給定一個整數數組,如果.. 1,2,3,...在數組中出現,則返回True ..在 數組中出現。
我會愛,而不是本身的答案,但我怎麼能解決的想法。那麼,這幾乎等於答案,但任何想法都可以。
謝謝。
我正在努力學習Clojure和函數式編程,爲此我打算從Codingbat解決練習。當我必須從另一個子數組中找到子數組[1 2 3]時,我被卡住了。來自頁面:Clojure子陣列
給定一個整數數組,如果.. 1,2,3,...在數組中出現,則返回True ..在 數組中出現。
我會愛,而不是本身的答案,但我怎麼能解決的想法。那麼,這幾乎等於答案,但任何想法都可以。
謝謝。
把它從「在數組中的項目」中思考到帶有序列和返回序列的函數。這個解複合匹配任務並決定你匹配的是否解決了你的問題。 (IM相當肯定decomplect僅在Clojure的字典)
一般:
autotestbed.core> (partition 3 1 (range 10))
((0 1 2) (1 2 3) (2 3 4) (3 4 5) (4 5 6) (5 6 7) (6 7 8) (7 8 9))
(filter your-predicate-here (partition ...)
在一個更大的例子中,有些人會選擇將它分解爲幾個函數然後進行合成。
爲了解決原來的問題:(用於古都誰谷歌從問題的標題帶來的)
的subvec
函數返回子向量爲了-1時
user>(subvec (vec (range 1000)) 10 20)
[10 11 12 13 14 15 16 17 18 19]
非常好,明確的答案。非常感謝你 – Cheluis 2012-07-15 14:21:38
亞歷刪除的答案非常值得投票:( – 2012-07-15 05:23:08
,爲什麼呢? – Cheluis 2012-07-15 14:21:52