gpt4 book ai didi

clojure - 关于字符串来源的问题?

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

我正在查看字符串的 src? fn 并提出了几个问题。下面是字符串的来源? fn -

(def
^{:arglists '([x])
:doc "Return true if x is a String"
:added "1.0"
:static true}
string? (fn ^:static string? [x] (instance? String x)))
  1. 提供 fn 静态元数据有什么作用?
  2. 为什么静态元数据给出两次,为 fn 或 var 指定它不就足够了吗?
  3. 为什么匿名 fn 有名字?

最佳答案

有关 1. 和 2. 的答案,请参阅 d.j.sheldrick对此问题的评论。回答3:

首先,尽管这与此处无关,但命名函数可以通过名称引用自身。这允许它们将自己作为值返回或通过通常的调用机制调用自己,而不是recur到顶部。重要的是,这是生成惰性序列的函数的正确自调用策略;我已经研究了 in an earlier SO answer 的原因(请参阅“如何将递归调用包装在惰性序列中......” block 引用之后的部分)。

其次,函数被编译为 JVM 类。如果函数未命名,则类由 Clojure 编译器根据定义函数的命名空间来命名;否则,该名称将用于为该类生成更有意义的名称。这对于调试很有用,因为它使堆栈跟踪更容易理解。

关于clojure - 关于字符串来源的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15942937/

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