キーボードからのユーザ入力を読み取るClojureプログラム用の関数を書いています。ユーザーが無効な入力を入力すると、ユーザーには警告が表示され、再度プロンプトが表示されます。Clojureでキーボードからユーザー入力を読み込むためのLispyの方法は?
while 1:
value = input("What is your decision?")
if validated(value):
break
else:
print "That is not valid."
私はClojureの中を考え出すことができる最善のはこれです:
(loop [value (do
(println "What is your decision?")
(read-line))]
(if (validated value)
value
(recur (do
(println "That is not valid.")
(println "What is your decision?")
(read-line)))))
これは動作しますが、それはPythonのような言語での手続きのスタイルを使用している場合、私はこのような何かをするだろう冗長であり、冗長であるようです。これを行うにはもっとLispy/Clojureyの方法がありますか? GET-line関数へのprintln /読出しラインをコンボアウト