Iterate over clojure map pairs (loop)

clojure, dictionary, loops

Solution

No need for loop/recur here. filter already iterates through a seq for you:

(filter (fn [entry] (> (:rank entry) 220)) myseq)

Problem

I have a sequence of map-pairs like this (currently about 17000 pairs) ``` (def myseq '({:name "Peter" :rank 2222} {:name "Anna" :rank 111})) ``` I want to filter specific pairs into a new sequence with ``` (filter (fn [x] (> x 222)) (:rank (first myseq))) ``` I have been trying to iterate with loop like this but keep getting thread-death. Also if I use filter on a a single map collection it just returns a new sequence, not sure if I need to create one myself here? ``` (defn remove-lower [number myseq] (loop [i 0] (if (= i (count file)) (println "done") (filter [x] (> x number)) (:rank (first myseq)))) (recur (rest myseq)))) ``` Finally is looping the most efficient way to get the new sequence of pairs?

Original source