2016년 11월 15일 화요일

[clojure-docs]take-while



take-while

(def food-journal
  [{:month 1 :day 1 :human 5.3 :critter 2.3}
   {:month 1 :day 2 :human 5.1 :critter 2.0}
   {:month 2 :day 1 :human 4.9 :critter 2.1}
   {:month 2 :day 2 :human 5.0 :critter 2.5}
   {:month 3 :day 1 :human 4.2 :critter 3.3}
   {:month 3 :day 2 :human 4.0 :critter 3.8}
   {:month 4 :day 1 :human 3.7 :critter 3.9}
   {:month 4 :day 2 :human 3.7 :critter 3.6}])
take-while을 써서 특정 자료만 얻을 수 있다. 1,2월 자료만 가져온다.
(take-while #(< (:month %) 3) food-journal)
({:month 1, :day 1, :human 5.3, :critter 2.3} 
 {:month 1, :day 2, :human 5.1, :critter 2.0}
 {:month 2, :day 1, :human 4.9, :critter 2.1}
 {:month 2, :day 2, :human 5.0, :critter 2.5})
비슷한 drop-while이라는 것도 기억하자.
(drop-while #(< (:month %) 3) food-journal)
이 둘을 함께 써서 2월과 3월의 자료만 얻을 수 있다.
(take-while #(< (:month %) 4)
  (drop-while #(< (:month %) 2) food-journal))

댓글 없음:

댓글 쓰기