gpt4 book ai didi

clojure - 一个接地 channel 仍在层中积聚

转载 作者:行者123 更新时间:2023-12-04 18:11:54 25 4
gpt4 key购买 nike

我想为 Clojure 使用 Lamina 库,特别是一个不返回任何消息的接地 channel ,其映射函数(监听器?)用于转换消息和更新 UI 元素。

我的代码工作正常,并且符合我的预期,但是当我将其可视化时,它表明值实际上是在累积的:

(use 'lamina.core 'lamina.viz)
(def ch (grounded-channel))
(map* inc ch)
(enqueue ch 1 2 3)
(view-graph ch)

这些值永远不会被使用,也无法访问:
(read-channel ch)
<< ... >> ;; empty channel
(last* ch)
<< ERROR: :lamina/already-consumed! >>

这种隐藏的积累有问题吗?

最佳答案

消息不会在接地 channel 中累积,它们会在您通过调用 (map* inc ch) 创建的 channel 中累积.请记住,调用类似 map*返回一个新 channel ,如 https://github.com/ztellman/lamina/wiki/Channels-new 的“ channel 操作符”部分所述.如果要访问该新 channel 中累积的消息,则需要在 map* 返回的 channel 上调用 read-channel .

关于clojure - 一个接地 channel 仍在层中积聚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12436625/

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