gpt4 book ai didi

Clojure 调用一系列函数并存储它们的返回值

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

我正在构建一个数据原子模式,并且在我的 clj 文件的底部有以下内容,该文件定义和处理模式和初始数据。每次调用 d/transact 下面调用的函数。

(defn recreate-database []
"To recreate db after running delete-database in bin/repl"
(pt1-transact-schema)
(pt1-transact-data)
(pt2-transact-schema)
(pt2-transact-data)
(pt3-transact-schema)
(pt3-transact-data))

默认情况下,我们只看到最后一个表单的返回值,但我想查看或保存六个函数调用中每一个的结果。

想知道这是一个多么好的方法。

想到了类似(map (comp println eval) [functions])的东西,但这是不对的。

最佳答案

还有一个很好的函数组合函数,称为 juxt:

user> ((juxt + - * /) 1 2)
;;=> [3 -1 2 1/2]

user> ((juxt (constantly 1) (constantly 2) (constantly 3)))
;;=> [1 2 3]

或者根据您的情况:

(def recreate-database (juxt pt1-transact-schema
pt1-transact-data
pt2-transact-schema
pt2-transact-data
pt3-transact-schema
pt3-transact-data))

关于Clojure 调用一系列函数并存储它们的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61636534/

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