Clojure-재귀
이전 주제에서 recur 문을 보았지만 'for'루프는 루프와 비슷합니다. recur Clojure의 실제 루프입니다.
프로그래밍 배경이 있다면 기능 언어의 주요 기능인 꼬리 재귀에 대해 들어 보셨을 것입니다. 이 재귀 특수 형식은 꼬리 재귀를 구현하는 형식입니다. "꼬리 재귀"라는 단어에서 알 수 있듯이 꼬리 위치에서 recur를 호출해야합니다. 즉, recur는 평가할 마지막 항목이어야합니다.
recur 문의 가장 간단한 예는 'for'루프 내에서 사용됩니다. 다음 예제에서 recur 문은 변수 'i'의 값을 변경하고 변수의 값을 루프 표현식에 다시 공급하는 데 사용됩니다.
예
(ns clojure.examples.hello
(:gen-class))
;; This program displays Hello World
(defn Example []
(loop [i 0]
(when (< i 5)
(println i)
(recur (inc i)))))
(Example)
산출
위의 프로그램은 다음과 같은 출력을 생성합니다.
0
1
2
3
4