加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala中的应用组合物的实例

发布时间:2020-12-16 08:44:18 所属栏目:安全 来源:网络整理
导读:这是我的旧 questions的后续内容: 我知道monad是不可组合的,即如果M1 [_]和M2 [_]是monad M2 [M1 [_]]不一定是monad.例如,List [Int]和Option [Int]是monad,但是Option [List [Int]]不会自动成为monad,因此我需要monad转换器将其用作monad(如here) 我知道应
这是我的旧 questions的后续内容:

我知道monad是不可组合的,即如果M1 [_]和M2 [_]是monad M2 [M1 [_]]不一定是monad.例如,List [Int]和Option [Int]是monad,但是Option [List [Int]]不会自动成为monad,因此我需要monad转换器将其用作monad(如here)

我知道应用函子是可组合的.我想这意味着如果A1 [_]和A2 [_]是适用者,那么A2 [A1 [_]]总是适用的.这是对的吗 ?

当A1是List而A2是Option时,你能提供这样一个组合的例子吗?你能举一个其他应用程序组成的例子吗?

解决方法

我在前面的scalaz源中添加了一些相关的示例.我添加了使用组合Apply实例的示例(Apply is Applicative without point method):

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

但是,对于我们有应用[M1]和M2 [_]的任何M1 [_]我们有申请[M2],M1 [M2 [_]]是适用的,你可以用Applicative获得Applicative实例[M1]撰写申请人[M2]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读