Clojure Functional Responsive programming(FRP)with Lamina:简单时钟代码?
我用它来实现函数式反应式编程(FRP) 作为初学者,我尝试编写一个非常简单的时钟代码,以了解库的基本知识 根据Lamina 0.5.0-rc4 API文件,Lamina.time API: 我想实现一个非常简单的时钟,其中:Clojure Functional Responsive programming(FRP)with Lamina:简单时钟代码?,clojure,reactive-programming,lamina-clojure,Clojure,Reactive Programming,Lamina Clojure,我用它来实现函数式反应式编程(FRP) 作为初学者,我尝试编写一个非常简单的时钟代码,以了解库的基本知识 根据Lamina 0.5.0-rc4 API文件,Lamina.time API: 我想实现一个非常简单的时钟,其中: 每秒钟的间隔作为可观察的时间流收集/列表/序列(我还不太了解区别)(编辑:现在我知道它被称为薄层) 现在作为可观察的流数据 每秒打印一次(订阅或为每个可观察到的时间集合) 欢迎任何反馈。谢谢 编辑:我退出。 经过一些研究,我得出结论,编写FRP代码的最佳方法是使用Rx
- 每秒钟的间隔作为可观察的时间流收集/列表/序列(我还不太了解区别)(编辑:现在我知道它被称为薄层)
- 现在作为可观察的流数据
- 每秒打印一次(订阅或为每个可观察到的时间集合)
(ns example.helloperiodically
(:require [lamina.core :as lamina]))
(def ch (lamina/periodically 1000 (fn [] "Hello World!")))
(def loop-forever (comp doall repeatedly))
(defn consumer []
(loop-forever
(fn [] (println @(lamina/read-channel ch)))))
(defn main []
(-> (Thread. consumer) .start))
你可以试试,Rx.js的继承者是在其作者抱怨其API晦涩难懂后创建的。Bacon.js非常干净,可以与jQuery、Backbone.js、AngularJS甚至Node.js集成。基本上,你可以将任何类型的事件包装到Bacon的事件流中,并开始用它们做精彩的事情
好处:您甚至可以尝试,被描述为“bacon.js周围的一层薄薄的Clojurescript包装”
--编辑:快速纠正打字错误为什么不试试?它实现了功能性和面向对象的方法。它有一个node.js(proact.js)包-它稳定且经过良好测试