2009-09-15 8 views
13

Clojureでは、スライディングウィンドウを(大きすぎず、大きすぎない)seq上に置くのに最適な方法は何でしょうか?私はちょうどdroptakeを使用し、現在のインデックスを追跡するか、それとも私が行方不明になっているより良い方法がありますか?連続ウィンドウ上のスライディングウィンドウ

私はステップ1と partitionはそれをしないと思い

答えて

20

user=> (partition 3 1 [3 1 4 1 5 9]) 
((3 1 4) (1 4 1) (4 1 5) (1 5 9)) 
3

は、Windows上で動作する場合、また、マップでこれを行うには便利なことができます:

user=> (def a [3 1 4 1 5 9]) 
user=> (map (partial apply +) (partition 3 1 a)) 
(8 6 10 15) 
user=> (map + a (next a) (nnext a)) 
(8 6 10 15) 
関連する問題