我知道monj可用于clojure,但有没有人证实他们在clojurescript中工作?
答案 0 :(得分:3)
Monads在clojurescript中工作。唯一的就是你在clojurescript [1]中引用宏的方式。
我所做的是将所有tools / macro.clj和所有monads.clj代码复制到一个大文件中,然后我从clojurescript中引用。
这可能不是最优雅的方式,但它有效。
您可以在https://github.com/cotarmanach/clojurescript-monad-macros中找到该文件 (我在我的项目中复制它并将命名空间更改为我的项目之一)
[1]见https://github.com/clojure/clojurescript/wiki/Differences-from-Clojure
ClojureScript的宏是用Clojure编写的,并通过引用来引用 名称空间声明中的require-macros关键字:
(ns my.namespace(:require-macros [my.macros:as my])):as 前缀选择器在:require-macros中是必需的。值得注意的是 由ClojureScript宏生成的代码必须以 ClojureScript中的功能。
答案 1 :(得分:2)
函数式编程方法Monads只需要具有更高阶函数和闭包的语言。你需要一个ClojureScript monad库。或者你可以继续以monadic风格编写你的ClojureScript
编辑:通过“monadic style”我指的是编写和编写功能,这些功能可以获取并返回monadic值并实现三个monad laws。有太多人比我更有资格解释monad,所以我只会链接到one of my personal favorite videos on monads。答案 2 :(得分:1)
Chris Zheng的ClojureScript Fluokitten库有一个很棒的端口:https://github.com/purnam/brahmin
克里斯有一个great post reflecting on Monads因此。
分类理论的猫库也很好https://funcool.github.io/cats/latest/
ClojureScript中的Monads活得很好。