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
...