我該如何在Clojure中重寫這段Ruby代碼?如何在Clojure中編寫Ruby的each_cons?
seq = [1, 2, 3, 4, 5].each_cons(2)
#=> lazy Enumerable of pairs
seq.to_a
=> [[1, 2], [2, 3], [3, 4], [4, 5]]
的Clojure:
(??? 2 [1 2 3 4 5])
;=> lazy seq of [1 2] [2 3] [3 4] [4 5]
我該如何在Clojure中重寫這段Ruby代碼?如何在Clojure中編寫Ruby的each_cons?
seq = [1, 2, 3, 4, 5].each_cons(2)
#=> lazy Enumerable of pairs
seq.to_a
=> [[1, 2], [2, 3], [3, 4], [4, 5]]
的Clojure:
(??? 2 [1 2 3 4 5])
;=> lazy seq of [1 2] [2 3] [3 4] [4 5]
你所要求超過一個懶惰sequence.This方式稱爲sliding window你可以做到這一點
user=> (partition 2 1 [1 2 3 4 5])
((1 2) (2 3) (3 4) (4 5))
BTW,@fujy,當我加'紅寶石標籤類似的情況下,這個問題http://stackoverflow.com/questions/18072261/how-to-rewrite-rubys-arrayx-in-clojure?rq=1,@sawa刪除它。我傾向於同意他的觀點。這不是關於Ruby的問題,這是關於Clojure的問題。 – DNNX
是的,我同意你的意見,這不是關於'ruby'的問題。但是,我認爲能夠回答的人應該瞭解'ruby'代碼。 – fujy