나는 시퀀스를 훈련을 4clojure.com으로 계산하려고합니다. 이 연습에서는 count
기능을 사용하지 않고 컬렉션의 요소 수를 계산합니다.Clojure에서 조건부 if에서 recur를 호출하려면 어떻게해야합니까?
나는 재귀를 통해 rest
의 사용으로이 작업을 수행 할 수 있다고 생각했습니다. 내가 얻은 것이 비어 있지 않으면 1 + recur on the sequence rest returned
을 반환합니다. 문제는 내가 맨 마지막 문장으로 recur
를 호출하고있어 비록
java.security.PrivilegedActionException: java.lang.UnsupportedOperationException:
Can only recur from tail position
를 그만 둘 것이있다.
(fn [coll] (let [tail (rest coll)]
(if (empty tail)
1
(+ 1 (recur tail)))))
내가 누락 된 상품이 있습니까?