Я пытаюсь написать программу, которая проверяет, является ли число совершенным или не использует clojure
. Я новичок в Clojure
или любом другом функциональном языке программирования.
Когда я удаляю оператор if в 5-й строке, он работает нормально. Но мне нужно проверить, делю ли я число или нет. И это моя проблема. Пожалуйста, проверьте мою функцию ниже и скажите мне, почему она возвращает ноль. независимо от того, что я меняю, все равно возвращается ноль.
И если кто-то может идти построчно и объяснять, что делает каждая строка, это тоже поможет. Спасибо
(defn perfect [number]
(loop [i 1 sum 0]
(if (< i number)
(recur (+ i 1)
(if (= (mod number i) 0)
(+ sum i)))
sum)))