gpt4 book ai didi

functional-programming - monad 有流畅的接口(interface)吗?

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

如果这个问题看起来很愚蠢,请原谅我,但我对函数式编程的整个世界都很陌生,所以我需要一些 StackOverflow 上的居民来让我直截了当。

据我所知,对 monad 的操作会返回一个 monad。这是否意味着 monad 有一个流利的接口(interface),因此应用于 monad 的每个函数在对它包装的变量应用一些操作后返回该 monad?

最佳答案

大概您指的是与 monads 关联的绑定(bind)运算符,其中可以从一个 monadic 值开始,将其绑定(bind)到一个 monadic 函数,并以另一个 monadic 值结束。这很像一个返回“this”指针或引用的“流利方法”(或一组这样的“流利接口(interface)”),是的,但是你会错过的是单子(monad)函数不需要返回与输入值相同类型的一元值。流畅的方法约定是返回相同类型的值,以便继续链接在正在准备的实例(或多个实例)上都有效的调用。

一元绑定(bind)运算符签名看起来更像这样:

M[a] -> (a -> M[b]) -> M[b]

也就是说,“返回值”的类型可能与第一输入值的类型不同。仅当提供的函数具有类型时才相同
(a -> M[a])

这一切都取决于一元函数的类型——更具体地说,是一元函数的返回类型。

如果您要将您接受的单子(monad)函数的域限制为那些返回与提供给绑定(bind)运算符的单子(monad)值相同类型的函数,那么是的,您将拥有类似于流利接口(interface)的东西。

关于functional-programming - monad 有流畅的接口(interface)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5438338/

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