gpt4 book ai didi

scala - Scala 中的应用组合示例

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

这是我旧的 questions 的后续:

我知道单子(monad)是不可组合的,即如果 M1[_]M2[_]是单子(monad)M2[M1[_]]不一定是单子(monad)。例如,List[Int]Option[Int]是单子(monad),但 Option[List[Int]]不是自动单子(monad),因此我需要 monad transformer将其用作 monad (如 here )

我知道应用仿函数是可组合的。我猜这意味着如果 A1[_]A2[_]是应用程序然后A2[A1[_]]始终是一个应用程序。这是正确的吗 ?

您能否在 A1 时提供此类组合的示例?是 ListA2Option ?你能举一个其他应用程序组成的例子吗?

最佳答案

不久前,我在 scalaz 源代码中添加了一些相关的示例。我添加了使用组合 Apply 实例的示例(Apply 是 Applicative 没有 point 方法):

https://github.com/scalaz/scalaz/blob/series/7.2.x/example/src/main/scala/scalaz/example/ApplyUsage.scala#L132-L147

但是是的,对于任何 M1[_]我们有Applicative[M1]M2[_]我们有Applicative[M2] , M1[M2[_]]是 applicative,您可以通过 Applicative[M1] compose Applicative[M2] 获取 Applicative 实例

关于scala - Scala 中的应用组合示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28850636/

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