0

数が完全かどうかをチェックするプログラムを作成しようとしていますclojure。私は非常に新しいClojureか、他の関数型プログラミング言語です。

5 行目の if ステートメントを削除すると、正常に動作します。しかし、私は数を割るかどうかを確認する必要があります。それが私の問題です。以下の関数を確認して、nil を返す理由を教えてください。何を変更しても、nil を返し続けます。

そして、誰かが行ごとに行き、各行が何をしているのかを説明できるなら、それも役に立ちます. ありがとう

(defn perfect [number]
   (loop [i 1 sum 0]
     (if (< i number)
       (recur (+ i 1)
              (if (= (mod number i) 0)
                (+ sum i)))
                sum)))
4

1 に答える 1