Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defn slide
- "Slides a sequence by n. That is, apply f to every set of n elements of src.
- Ex: (slide \"vida\" 2) returns (\"da\" \"id\" \"vi\").
- Ex: (slide (fn [c] (reduce #(+ %1 %2) c)) '(1 2 3 4 5) 4) return ((14 10) (3 4 5))
- Ex: (slide (fn [c] (reduce #(+ %1 %2) c)) '(1 2 3 4 5) 2) return ((9 7 5 3) (5))
- Returns a list where first is the result of f applied to every slide and
- rest are the elements of src that couldn't fit in a slide of size n."
- [f src n]
- (loop [s src
- r (empty src)]
- (let [w (take n s)]
- (if (> n (count w))
- (list r w)
- (recur (rest s)
- (lazy-seq (cons (f w) r)))))))
Add Comment
Please, Sign In to add comment