我想为 Clojure 使用 Lamina 库,特别是一个不返回任何消息的接地通道,其映射函数(侦听器?)用于转换消息和更新 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! >>
这种隐藏的积累有问题吗?