gpt4 book ai didi

command-line - 用Clojure编写一个惰性的,功能性的,交互式命令行应用程序

转载 作者:行者123 更新时间:2023-12-03 13:37:12 25 4
gpt4 key购买 nike

我想知道:编写Clojure程序并通过stdin和stdout与用户或另一个程序交互的最佳方法是什么?

显然有可能编写某种命令式循环,但是我希望找到一些更懒惰/更实用的功能,这有点受Haskell的“交互”功能的启发。

最佳答案

这是我能想到的最好的方法:

(defn interact [f]
(lazy-seq
(cons (do (let [input (read-line)
result (f input)]
(println result)
{:input input :result result}))
(interact f))))


您可以这样使用它:

(def session
(take-while #(not= (:result %) 0)
(interact count)))


替换:

user=> (str "Total Length: " (reduce #(+ %1 (:result %2)) 0 session))
foobar
6
stackoverflow
13

0
"Total Length: 19"
user=> session
({:input "foobar", :result 6} {:input "stackoverflow", :result 13})

关于command-line - 用Clojure编写一个惰性的,功能性的,交互式命令行应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5486211/

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