【发布时间】:2018-08-10 12:04:34
【问题描述】:
我是 clojure 的新手,我的函数 elligble voters 没有返回向量,我哪里出错了。
(def human-db
[
{:name "Kanishk" :age 28 :sex "male"}
{:name "Kanishk1" :age 29 :sex "male"}
{:name "Kanishk2" :age 0 :sex "female"}
{:name "Kanishk3" :age 1 :sex "male"}
{:name "Kanishk4" :age 3 :sex "female"}
{:name "Kanishk5" :age 3 :sex "male"}
{:name "Kanishk6" :age 3 :sex "female"}
{:name "Kanishk7" :age 3 :sex "male"}
{:name "Kanishk8" :age 3 :sex "female"}])
(defn elligble-voters
[human-db]
(reduce (fn
[new-map map]
(if (> (:age map) 18)
(conj new-map map))) [] human-db))
(elligble-voters human-db)
【问题讨论】:
-
您能说明一下您要达到的目标吗?
-
你没有
if的第二个分支:如果年龄小于或等于 18,它只返回 nil 。您需要返回累加器(new-map):(if ... (conj ...) new-map)
标签: clojure clojure-core.logic