gpt4 book ai didi

clojure - 在 Clojure 中从键盘读取用户输入的 Lispy 方式?

转载 作者:行者123 更新时间:2023-12-02 11:39:46 25 4
gpt4 key购买 nike

我正在为 Clojure 程序编写一个函数,用于从键盘读取用户输入。如果用户输入无效的输入,则会警告用户,然后再次提示。当在 Python 这样的语言中使用过程式风格时,我会这样做:

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)))))

这可行,但它是多余的并且看起来很冗长。有没有更 Lispy/Clojurey 的方法来做到这一点?

最佳答案

(defn input []
(println "What is your decision?")
(if-let [v (valid? (read-line))]
v
(do
(println "That is not valid")
(recur)))

关于clojure - 在 Clojure 中从键盘读取用户输入的 Lispy 方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4251674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com