2014-10-05 109 views
1

在Clojure中,我想创建一个函数,该函数将不断要求用户提供选项,根据选项执行一些代码,然后在用户选项为“q”时退出。基于用户输入的Clojure循环

我很喜欢所有与序列一起工作的各种Clojure格式,我当然可以用类似于Java的解决方案来解决上述问题,但我无法弄清楚如何以“clojuresque”方式做到这一点。

感谢,

杰弗里小号

回答

4

像这样的东西应该做的工作:

(defn main-loop [] 
    (case (read-line) 
    "q" nil 
    "a" (do (println "got a command!") (recur)) 
    "b" (do (println "got b command!") (recur)) 
    (do (println "got invalid command!") (recur))))