小编use*_*455的帖子

错误的args(0)传递给:循环/重复函数上的PersistentVector

尝试定义一个factors函数,该函数将使用loop/recur返回数字的所有因子的向量.

;; `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))))))
Run Code Online (Sandbox Code Playgroud)

但是我一直遇到以下错误:

ArityException Wrong number of args …

clojure

4
推荐指数
1
解决办法
2277
查看次数

4
推荐指数
1
解决办法
95
查看次数

标签 统计

clojure ×2