请在 2024 Clojure 状态调查! 分享您的想法。

欢迎!请查阅 关于 页面以获取更多此网站的工作信息。

0 投票
Clojure

当前 {{condp}} 使用第一个参数 {{pred}} 的值。这有两个缺点

  1. 不允许使用宏作为第一个参数
  2. 效率会降低,因为函数调用不能再内联(常见用例:{{condp = x ...}})

如果 {{pred}} 是符号,可以避免使用 {{let}} 绑定。这将正确地内联 {{=}},这是常见的。

3 个答案

0 投票

用户 alexmiller 评论道:

具体的例子会有帮助。

0 投票

用户 aralo 评论道:

在我例子中,我有一个匹配路由的宏。由于它们是静态的,这可以在编译时进行优化

(condp route-match? x [:comments :view] 1 [:posts :edit] 2 [_ :delete] 3)

还会为 records 提供更快的关联操作,这会生成一个使用 identicalcondp

0 投票
参考: https://clojure.atlassian.net/browse/CLJ-2162(由 aralo 报告)
...