Advertisement
Guest User

Untitled

a guest
Sep 3rd, 2014
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.62 KB | None | 0 0
  1. ;; Takes a number of sequentially equal elements in a list
  2. ;; like (filter-test '(1 1 2 2 3 4)' 2
  3. ;; returns 1 1 2 2
  4.  
  5. (defn filter-test
  6. ""
  7. [unfiltered-in count-in]
  8. (loop [count count-in filtered [] unfiltered unfiltered-in]
  9. (if (= count 0)
  10. filtered
  11. (if-let [next-unfiltered (fnext unfiltered)]
  12. (let [ cur-unfiltered (first unfiltered)]
  13. (if (= next-unfiltered cur-unfiltered)
  14. (recur (dec count) (conj filtered cur-unfiltered next-unfiltered) (rest unfiltered))
  15. (recur count filtered (rest unfiltered))))
  16. filtered
  17. )
  18.  
  19. )
  20.  
  21. )
  22. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement