繁体   English   中英

Scala中的适用成分示例

[英]Example of Applicative composition in Scala

这是我的老问题的跟进:

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

我知道应用函子是可组合的。 我想这意味着如果A1[_]A2[_]是可应用的,则A2[A1[_]] 始终是可应用的。 这是对的吗 ?

A1ListA2Option时,您能否提供这种组合的示例? 您能举一个由其他应用组成的示例吗?

我不久前在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[M1] compose Applicative[M2]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM