我有一個列表,其中有像(12,23,34,33,34,45,56 ......)幾乎200個人的年齡。我想分組他們(10-20)(21-30)(31-40)....(91-100)年齡組。如何使用clojure將特定範圍內的年齡分組?
如何在clojure中做到這一點。
謝謝
我有一個列表,其中有像(12,23,34,33,34,45,56 ......)幾乎200個人的年齡。我想分組他們(10-20)(21-30)(31-40)....(91-100)年齡組。如何使用clojure將特定範圍內的年齡分組?
如何在clojure中做到這一點。
謝謝
(defn group-by-tens [numbers]
(->> numbers (group-by #(quot % 10))
(sort-by first)
(map second)))
例子:
(group-by-tens [15 28 35 6 9 37 33 47 11 38 4 27 49 47 38 20 36 49 27 30])
=> ([6 9 4] [15 11] [28 27 20 27] [35 37 33 38 38 36 30] [47 49 47 49])
另外,如果你的年齡值進行排序(像從你的問題的例子),你可以分割他們(或其他排序和分區):
user> (partition-by #(quot % 10)
[1 2 3 4 10 12 16 23 27 29 33 34 45 59 71 72])
;;=> ((1 2 3 4) (10 12 16) (23 27 29) (33 34) (45) (59) (71 72))
你能顯示一些代碼嗎?你的列表是什麼樣子的,你如何表示「年齡」,你如何分組年齡段等等。 – glts