haskell - Haskell 的 <- 的 clojure 等价物是什么?

标签 haskell clojure monads

我试图找出 IO monad 和 <-我经常在 Haskell 代码中看到的语法。我已经看到它与多种数据类型一起使用,包括数组和 IO。

如果我自己指定一个,clojure 中的等效操作是什么?

最佳答案

Do-notation 只是标准 monad 操作的糖。例如,如果你有这样的事情:

do
  x <- someMonad
  return (someFunction x)

这相当于:
someMonad >>= \x -> return (someFunction x)

因此,使用众多 monad 库之一的等效 Clojure 可能是这样的:
(m-bind some-monad (fn [x] (m-result (some-function x))))

关于haskell - Haskell 的 <- 的 clojure 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20431964/

相关文章:

list - Haskell Tuple 在无限列表上的解构在将 Tuple 作为参数解构时与使用 let 解构时的行为不同

haskell - 将 G-Machine 源转换为 LLVM IR

haskell - 在 Haskell 中使用元组

clojure - 我应该什么时候在 Clojure 中使用 deftype?

javascript - Clojure、JavaScript (ECMA) 和 MCLR

Clojure 将时间戳解析为字符串

scala - 在 Scala 中编写状态 monad

haskell - Haskell语法: Parse Error On Input

haskell - Monadic 杂质和 Haskell 纯度。它们是如何结合的?

multithreading - Haskell:我刚刚重新发明了什么单子(monad)?