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

欢迎!有关此工作方式的更多信息,请参阅关于页面。

0投票
core.async

从用户的角度来看,< 和 > 不是一个函数,因为它们不能在 go 块内部作为函数使用;例如 (go (apply < ...)) 不是一个有效的形式。这是一个问题,因为它 1) 使用户感到困惑,2) 导致其他宏出现错误,例如 CLJ-2291。

建议的解决方案:使 < 和 > 成为宏。

向后兼容性:此更改不应该引入任何破坏性更改,因为 < 不可以用作函数。这将引入 <!! 和 <! 之间的不匹配,一个是一个函数,另一个不是,但这种不匹配与这两个的语义差异是一致的。

有可能还将某些类型错误(如 ">! 不在 (go ...) 块中使用")移至编译时,干净地解决之前报告的一些问题,例如:(链接:https://dev.clojure.org/jira/browse/ASYNC-168?focusedCommentId=42881&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-42881 文本:ASYNC-168)

1 个答案

0投票
...