我正在尝试在clojure
. 该函数返回给定集合的最大数量。如果集合是空的,那么它应该返回nil
。我的代码是:
(defn gum [coll]
(if (empty? coll)
0
(max (first coll)
(gum (rest coll)))))
预期结果:
(gum [1 2 98 -3]) => 98
(gum [1 9]) => 9
(gum []) => nil
但我得到:
(gum [1 2 98 -3]) => 98
(gum [1 9]) => 9
(gum []) => 0 (not desired result - should be `nil`)
这是因为我保留了(empty? coll)
as的值0
。如果我保留它,nil
那么(gum [1 2 98 -3])
将无法正常工作。关于如何同时带来(gum [])
asnil
和(gum [1 2 98 -3])
as的价值的任何建议98
?