2024 Clojure 状态调查中分享您的想法!

欢迎!请查看关于页面以了解更多关于如何使用本页面的信息。

0
core.logic

这个宏在用 core.logic 实施编译器静态分析时相当有用。

(defmacro ==>> (link: expr-in & rel-forms)
"通过 rel-forms 将 expr-in 线程化,然后与最后一个 rel-forms
('oul表达式')统一。

示例

 (==>> (link: [1]) (firsto) (firsto) x))
 ;; 'x' will become bound to value 1

此宏展开为
(fresh (link: _A _B)

 (firsto (link: [1])  _A)
 (firsto _A     _B)
 (==     _B     q))

如果您设想 firsto 的'返回值' 是其最后一个参数,
那么它的工作原理就像 clojure.core/->,每个表达的返回值是
下一个表达式的第一个参数。

3 个答案

0

评论者:jasonjckn

可能有一个更好的名字,不确定。

0

评论者:jasonjckn

将 ==>> 重命名为 ==->

0
参考资料:https://clojure.atlassian.net/browse/LOGIC-38(由 jasonjckn 报告)
...