프로그래밍 검색 블로그

clojure 기초 반복 loop 본문

clojure기초

clojure 기초 반복 loop

코딩조무사 2017. 10. 21. 14:49

loop 에서는 let과 비슷하게 루프 안에서만 사용할 수 있는 변수를 정의할 수 있고 

recur를 호출하는것으로 가장 가까운 스코프의 loop 로 돌아갈 수 있다 

recur는 인자로 들어가는 값으로 loop를 다시 실행하는데 

recur에 인자로 들어가는 값의 숫자와 loop 값의 숫자가 같아야 한다


1
2
3
4
5
6
(defn foo []
    (loop [i 0]
          (println i)
          (if (< i 5)
            (recur (inc i)))))

cs


구조는 별로 좋지 않은것 같지만 이해를 돕기 위해서 첨부하였다

i가 5보다 작으면 반복하게 된다


최대한 구조가 비슷하게 C++로 만든 함수는 다음과 같다


1
2
3
4
5
6
7
8
9
10
void foo(){
    int i = 0;
LOOP:
    printf("%d\n", i);
    if(i < 5){
        i++;
        goto LOOP;
    }
}
 
cs



반복 구조는 x86어셈블리의 loop와도 비슷하다 

'clojure기초' 카테고리의 다른 글

clojure 함수형 패턴매칭 1 (cond)  (0) 2017.10.21
clojure factorial 1  (0) 2017.10.21
clojure 변수 선언  (0) 2017.10.21
clojure 함수 3  (0) 2017.10.21
clojure 함수 2  (0) 2017.10.21
Comments