Iterator i;
while (i.hasNext()) {
i.next();
}
Node next = root; while( next != null ) next = next.next;
클로저에서 반복자에 해당하는 것
(seq [1 2 3]) => (1 2 3)
(seq (list 4 5 6)) => (4 5 6)
(seq #{ 7 8 9}) => (7 8 9)
(seq (int-array 3)) => (0 0 0)
(seq "abc") => (\a \b \c)
시퀀스인가? 반복자는 단순 시퀀스이다.
(first (seq [1 2 3])) ; 1 (rest (seq [1 2 3])) ; (2 3)시퀀스가 아닌 것으로도 이렇게 돌아다닐 수 있나? 클로저는 자바다. 인터페이스를 구현하면 된다.
(deftype RedGreenBlackTree [& elems]
clojure.lang.Seqable
(seq [self]
;; traverse element in needed order
))
내 생각에는 그냥 죄다 시퀀스로 쓰면 될 것 같다.
댓글 없음:
댓글 쓰기