zca*_*ate 3 monads haskell clojure
我试图找出IO monad和<-我经常在Haskell代码中看到的语法.我已经看到它用于多种数据类型,包括数组和IO.
如果我自己指定一个,那么clojure中的等效操作是什么?
标记只是标准monad操作的糖.例如,如果你有这样的东西:
do
x <- someMonad
return (someFunction x)
Run Code Online (Sandbox Code Playgroud)
这相当于:
someMonad >>= \x -> return (someFunction x)
Run Code Online (Sandbox Code Playgroud)
所以使用众多monad库之一的等效Clojure可能是这样的:
(m-bind some-monad (fn [x] (m-result (some-function x))))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
413 次 |
| 最近记录: |