首页 文章
  • 42 votes
     answers
     views

    是不是与Clojure原则相反的core.async?

    我见过很多Clojure程序员热衷于新的core.async库,虽然看起来非常有趣,但我很难看到它是如何符合Clojure原则的,所以我有这些问题: 它在任何地方都使用可变状态,因为函数名称通过带有感叹号来表示,例如alt!,put!,>!和其他 . 如果您从 Channels 中输入或获取值,则会在该位置修改该 Channels . 是否与Clojure哲学相反,它更倾向于使用不可变...
  • 5 votes
     answers
     views

    扩展clojure core.async的功能

    是否建议使用我自己的异步函数扩展core.async的功能? 通道的异步由 put! 和 take! 处理,它们接受回调,但协议嵌套在async.impl.protocols命名空间中 . impl意味着什么?在这种情况下,还是可以实现它们? 例如,我可以将netty通道或java套接字包装为ReadPort和WritePort .
  • 0 votes
     answers
     views

    Clojure - apache kafka的core.async接口

    我正在使用clj-kafka,我正在尝试在REPL中创建一个 core.async 接口 . 我收到一些消息,但我的结构错了:我要么无法停止接收消息,要么必须再次启动 go 例程以接收更多消息 . 这是我的尝试: (defn consume [topic] (let [consume-chan (chan)] (with-resource [c (consumer config)] ...
  • 0 votes
     answers
     views

    core.test中的Clojure core.async

    我有一些core.async代码,包含两个chans和三个节点的管道: 生产环境 者 - 将值放入chan1的函数> !! (它不在go-block中,但是从go-loop内部调用该函数) 一个过滤器 - 另一个不在go-block中而是在go-loop中调用的函数,它从chan1中抽取项目(带有<!!),进行测试,如果测试通过将它们推到chan2上(用>! !) 一...
  • 1 votes
     answers
     views

    clojure core.async - 意外的不一致

    几年没有完成任何Clojure,所以决定回去并且不要忽略core.async这次非常酷的东西,但是 - 它几乎立即让我感到惊讶 . 现在,我理解当涉及多个线程时存在固有的不确定性,但是这里有比这更大的东西 . 我这么简单的例子的源代码,我试图将STDIN中的行复制到文件中: (defn append-to-file "Write a string to the end of a fi...
  • 3 votes
     answers
     views

    何时在Clojure中使用core.async?

    我什么时候应该使用Clojure的 core.async 库,什么样的应用程序需要那种异步的东西? Clojure提供了4个基本的可变模型,如 refs , agents , atoms 和 thread locals/vars . 这些可变引用是否无法以任何方式提供 core.async 轻松提供的内容? 你能为异步编程提供真实世界的用例吗? 我怎么能理解当我看到问题并点击它然后我说&quot...

热门问题