gpt4 book ai didi

clojure:覆盖函数应用程序

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

是否可以覆盖 Clojure 中函数应用程序的行为?

例如,我想创建一个命名空间,其中:

(+ 2 2)

通过如下宏计算常量5:

(defmacro app [& args] 5)

最佳答案

+ 只是一个函数,因此您可以在您的命名空间中排除对 clojure.core/+ 的引用,然后在该命名空间中定义您自己的加法函数。

Clojure 没有为该命名空间中的函数应用的概念提供通用的钩子(Hook)。开发工具所做的就是读取包含函数的所有符号的命名空间,然后将它们与执行跟踪的包装函数 Hook 。这只会影响发生这种情况时命名空间中存在的函数,因此它不像您所要求的那样通用。

参见clojure.tools.traceRobert Hooke了解更多这方面的例子。

关于clojure:覆盖函数应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37331304/

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