Loops clojure循环/在一定范围内重复
我想在3到11的范围内执行Loops clojure循环/在一定范围内重复,loops,clojure,Loops,Clojure,我想在3到11的范围内执行循环/重复: (loop [itr 3] (if (and (< itr 11) (= 0 (mod itr 4))) (println itr) (recur (inc itr)) )) 这将使REPL崩溃而不返回nil。是否有一种方法可以将一个类似于其他代码>代码>的语句添加到这个循环中,所以如果没有匹配,它返回一个 nIL < /p> ,而不是循环 >代码> ReCurrue>代码,考虑使用您可以处理的高级函数: (first
循环/重复
:
(loop [itr 3]
(if (and (< itr 11) (= 0 (mod itr 4)))
(println itr)
(recur (inc itr))
))
这将使REPL崩溃而不返回
nil
。是否有一种方法可以将一个类似于<代码>其他代码>代码>的语句添加到这个循环中,所以如果没有匹配,它返回一个<代码> nIL<代码> < /p> ,而不是<代码>循环<代码> >代码> ReCurrue>代码,考虑使用您可以处理的高级函数:
(first (filter #(zero? (mod % 4)) (range 3 11)))
;=> 4
(first (filter #(zero? (mod % 4)) (range 2 3)))
;=> nil
而不是<代码>循环<代码> />代码> ReCurrue/Cuff>,考虑使用您可以处理的高级函数:
(first (filter #(zero? (mod % 4)) (range 3 11)))
;=> 4
(first (filter #(zero? (mod % 4)) (range 2 3)))
;=> nil