gpt4 book ai didi

purescript ->>= 在纯脚本中是什么意思?

转载 作者:行者123 更新时间:2023-12-04 18:04:11 25 4
gpt4 key购买 nike

我正在阅读 purescript wiki并找到以下部分解释 do根据 >>= .
>>= 是什么意思意思是?

Do notation

The do keyword introduces simple syntactic sugar for monadic expressions.

Here is an example, using the monad for the Maybe type:

 maybeSum :: Maybe Number -> Maybe Number -> Maybe Number 
maybeSum a b = do
n <- a
m <- b
let result = n + m
return result

maybeSum takes two values of type Maybe Number and returns their sum if neither number is Nothing.

When using do notation, there must be a corresponding instance of the Monad type class for the return type. Statements can have the following form:

  • a <- x which desugars to x >>= \a -> ...
  • x which desugars to x >>= \_ -> ... or just x if this is the last statement.
  • A let binding let a = x. Note the lack of the in keyword.

The example maybeSum desugars to ::

 maybeSum a b =
a >>= \n ->
b >>= \m ->
let result = n + m
in return result

最佳答案

>>=是一个函数,仅此而已。它位于 Prelude 模块中,类型为 (>>=) :: forall m a b. (Bind m) => m a -> (a -> m b) -> m b ,是 bind 的别名Bind 的功能类型类。您可以在 this link 中找到 Prelude 模块的定义。 ,在 Pursuit package index 中找到.

这与 Monad 密切相关。 Haskell 中的 type 类,它更容易找到资源。有一个famous question on SO关于这个概念,如果你想提高对绑定(bind)函数的了解,这是一个很好的起点(如果你现在开始学习函数式编程,你可以暂时跳过它)。

关于purescript ->>= 在纯脚本中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35145501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com