0
여러 개 포함 된 continue 루프를 만들려고합니다. 내가 현재 가지고하는 것은 이것이다 :루프에서 인수가 여러 개일 때
(defn test [n]
(loop [x n]
(when (> x 1)
(println x))
(when (even? x)
(recur (- x 1))
(println x))
(when (odd? x)
(recur (+ x 2))
(println x))
)
)
Clojure에서이 작업을 수행 할 수있는 가능한 방법이 있나요?
아하 나는 그 기능을 잘못 간과했다. 나는 원자 속에 형태를 적용하는 또 다른 것을 가지고있다. 그러나 그것은 어떤 이유로 프로세스를 계속하지 않는다, 나는 스왑을 사용한다고 생각하고 있었다! 두 번 : (defn이 된 헹크 [N] \t (데프 (원자 N)) \t \t (하면서 (홀수 @a) \t \t \t (에 println a) (스왑 A * 3) (스왑! a + 1) \t \t – user1213904
(swap! a) 2x 이후에 스크립트를 멈추는 일종의 오류를 줄 수 있겠습니까? – user1213904
원자를 사용하는 것은 좋은 생각이 아니며 'def'도 좋습니다. 폼 내부에서 사용하기위한 것이 아니라 최상위 매크로입니다 (로컬 바인딩에는'let'을 사용해야합니다). 다음 링크의 코드는 관용적 인 코드입니다 : https://gist.github.com/ 3886160 –