对前面的小结

1.

可能有些人对我之前的讲解的内容,无法接受!当然我是没讲解的那么清晰清楚,因为到目前为止的知识都是比较易懂的,但是还是我们来小结一下之前的知识吧,这样比较好容易下面的步骤

 

2.

 

我们的所有操作几乎是围绕monad展开的,说到底就是操作monad,如提出单子内容计算然后继续包裹monad

所以我这里主要讲解monad的对等操作,和非对等操作

 

对等操作,就是monad的类型是一样的,我们可以直接运算,例如使用符号<*>

 

scala> List(1,2,3) <*> List((_:Int) + 1,(_:Int) * 4)
res159: List[Int] = List(2, 3, 4, 4, 8, 12)

scala> (1,2,3) <*> List((_:Int) + 1,(_:Int) * 4)
<console>:14: error: type mismatch;
 found   : List[Int => Int]
 required: (Int, Int, Int => ?)
              (1,2,3) <*> List((_:Int) + 1,(_:Int) * 4)


我举出了两个例子,大家对比就知道了!

 

 

 

接着我们需要处理第二种情况-非对等的时候-我们使用如|@|及^(){}等

scala> ^(1.point[List],2.point[List]){(_:Int) + (_:Int) * 4 }
res164: List[Int] = List(9)

scala> (1.point[List] |@| 2.point[List]){(_:Int) + (_:Int) * 4 }
res165: List[Int] = List(9)


 

这些是monad最基本的操作了

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值