gpt4 book ai didi

scala - Kleisli 是仿函数、应用函数还是单子(monad)?

转载 作者:行者123 更新时间:2023-12-01 22:32:26 29 4
gpt4 key购买 nike

这个问题的灵感来自对我之前的 question 的反馈。

Scalaz 为函数 A => M[B] 提供了一个包装类 Kleisli[M[_], A, B] .

如果 M[_] 是一个半群,则

Kleisli[M[_], A, B] 是一个半群。假设 M[_] 是一个仿函数。 Kleisli 也是一个仿函数是否正确?如果 M[_] 是一个 applicative 或 monad 怎么办?

最佳答案

完全未应用 Kleisli没什么大不了的——它有种(* -> *) -> * -> * -> * ,而且我不知道有任何有意义的类型类。

如果你有一个类型构造函数的 monad F[_] ,虽然,然后 Kleisli[F, ?, ?]是一个 Arrow (这是 * -> * -> * 类事物的类型类)。

类似地,如果F[_]有一个仿函数实例,然后 Kleisli[F, A, ?]具有任何特定 A 的仿函数实例.事实上,同样的事情适用于应用仿函数和单子(monad)——为 F[_] 拥有它们中的任何一个的实例。你有一个 Kleisli[F, A, ?] 的实例

最后,如果您有 F[B] 的半群(或幺半群) , 然后 Kleisli[F, A, B]是任何 A 的半群(或幺半群) .

关于scala - Kleisli 是仿函数、应用函数还是单子(monad)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28973806/

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