1
루프/반복을 사용하여 숫자의 모든 요소 벡터를 반환하는 factors
함수를 정의하려고합니다.루프/반복 함수의 PersistentVector 전달 된 인수 개수가 잘못되었습니다.
;; `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