gpt4 book ai didi

clojure - 使用 Clojure 的动态代码

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

我正在尝试在 clojure 中创建一些动态代码。在下面的函数中,想法是动态生成 (and) 宏的条件。

(defn matching-keys [rec match-feed keys]
(> (count (clojure.set/select #(and (for [k keys]
(= (% k) (rec k))))
(set match-feed)))
0))

如果有效的话!!那么当传递 [:tag :attrs]:

的键时,这段代码会产生一个(和)类似的东西
(and (= (% :tag) (rec :tag))
(= (% :attrs) (rec :attrs)))

我一直在摆弄各种 `` 和 ~` 运算符来尝试使其工作,但现在处于困惑状态。欢迎任何指导。

谢谢

科林

最佳答案

您不需要为此动态生成代码。将匿名函数更改为 #(every? (fn [k] (= (% k) (rec k)))keys) 应该可以完成您想要的操作,而无需在运行时生成代码。

使用高阶函数的能力意味着您几乎不需要动态生成代码。

关于clojure - 使用 Clojure 的动态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4934494/

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