[英]How can I convert clojure.contrib.monads to be used with clojurescript?
[英]Can I use monads with clojurescript?
我知道monad可用於clojure,但有沒有人證實他們在clojurescript中工作?
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])):require-macros中需要:as前綴選擇器。 需要注意的是,ClojureScript宏生成的代碼必須以ClojureScript中的功能為目標。
Monads是函數式編程方法,只需要具有更高階函數和閉包的語言。 你需要一個ClojureScript monad庫。 或者你可以繼續以monadic風格編寫你的ClojureScript
編輯:通過“monadic風格”,我指的是寫作和編寫功能,采取和返回monadic值並實現三個monad法則 。 有太多的人比我更有資格解釋monad,所以我只會鏈接到我個人最喜歡的monad視頻 。
Chris Zheng為ClojureScript提供了一個很棒的Fluokitten Library端口: https : //github.com/purnam/brahmin
由於這個原因,Chris有一篇很好的文章反映了莫納德 。
分類理論的貓圖書館也很好https://funcool.github.io/cats/latest/
ClojureScript中的Monads活得很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.