목차

filter

krjy9da.jpg

(def numbers (range 1 11))
(filter (fn [x] (= 0 (rem x 3))) numbers)
; (3 6 9)

익명함수

(filter #(zero? (rem % 3)) numbers)
; (3 6 9)

(defn my-filter [f coll]
  (loop [result []
         [item & remain] coll]
    (if (seq remain)
      (recur (if (f item)
               (conj result item)
               result)
             remain)
      result)))
 
(my-filter odd? [1 2 3 4 5])
;;=> [1 3]


관련 문서