1
factors
関数を定義しようとしましたが、loop/recurを使用して数値のすべての要素のベクトルを返します。loop/recur関数のPersistentVectorに渡されるargs(0)の数が間違っています
;; `prime?` borrowed from https://swizec.com/blog/comparing-clojure-and-node-js-for-speed/swizec/1593
(defn prime? [n]
(if (even? n) false
(let [root (num (int (Math/sqrt n)))]
(loop [i 3] (if (> i root) true
(if (zero? (mod n i)) false
(recur (+ i 2))))))))
(defn factors [x] (
(loop [n x i 2 acc []]
(if (prime? n) (conj acc n)
(if (zero? (mod n i)) (recur (/ n i) 2 (conj acc i))
(recur n (inc i) acc))))))
しかし、私は次のようなエラーに実行しておいてください。私はここに何かを明らかに不足しているしなければならない
ArityException Wrong number of args (0) passed to: PersistentVector clojure.lang.AFn.throwArity
。どんな提案も大歓迎です!
うわー、私はこれらの括弧を追跡することをより重視しなければならない。余分なカッコのセットを削除することはトリックでした...ありがとう! – user1797455