迭代

dotimes

dotimes语句对表达式n次求值,返回nil

(dotimes [x 正整数] 表达式)
user=> (dotimes [i 2]
  #_=>        (println i))
0
1
nil

doseq

迭代有序集合,返回nil

(doseq [x 有序集合] 表达式)
user=> (doseq [n [1 2 3]]
  #_=>         (println n))
1
2
3
nil

for

for语句是一个根据绑定值产生list的语句,

 user=> (for [c [:a :b]
              n (range 2)]
               [c n])
([:a 0] [:a 1] [:b 0] [:b 1])

loop 和 recur 语句

(loop 绑定值
  (if 条件
    (recur 提供绑值返回表达式))
user=> (loop i 0
            (recur (inc i))
            i))
10