我正在尝试在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?