簡體   English   中英

我可以使用帶有clojurescript的monad嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM