我正在尝试编写一个程序来检查一个数字是否完美或不使用clojure
. 我对Clojure
任何其他函数式编程语言都很陌生。
当我删除第 5 行的 if 语句时,它工作正常。但我需要检查我是否将数字除以。这就是我的问题。请检查下面的函数并告诉我为什么它返回 nil。无论我改变什么,都会返回零。
如果有人可以逐行解释每行在做什么,那也会有所帮助。谢谢
(defn perfect [number]
(loop [i 1 sum 0]
(if (< i number)
(recur (+ i 1)
(if (= (mod number i) 0)
(+ sum i)))
sum)))