Clojure While Loop

Ham*_*aya 11 java loops clojure while-loop

我尝试clojure我试图找出如何实现以下算法,

我正在读取输入流,我想继续阅读,直到它不是分隔符.

我可以在带有while循环的java中执行此操作,但我似乎无法弄清楚如何在clojure中执行此操作?

while
   read
   readChar != delimiter

   do some processing....
end while

Nat*_*ers 10

我不知道Clojure,但它看起来像Scheme一样支持"let loops":

(loop [char (readChar)]
   (if (= char delimiter)
       '()
       (do (some-processing)
           (recur (readChar)))))
Run Code Online (Sandbox Code Playgroud)

希望这足以让你入门.我提到http://clojure.org/special_forms#toc9来回答这个问题.

注意:我知道Clojure不鼓励副作用,所以大概你想要返回一些有用而不是'()的东西.


wro*_*ame 5

在Clojure 1.3.0上工作,为了它的价值,你可以在Clojure中编写while循环,现在做类似于

(while truth-expression
  (call-some-function))
Run Code Online (Sandbox Code Playgroud)