Maybe Monad in Scala
失敗,擇日再挑戰... 現在這樣難用到爆炸。
而且 pattern match 不了 Void (Nothing)...
他看不出來為什麼 Void 是 Monad[b] 的 subtype?
啊 Void extends Monad 為什麼不是?? >_<
而且 >>= 的 type 不能自己判斷,還要自己寫太笨了吧...
要我每次 >>= 都要寫明 Monad[b] 是什麼 monad 也太.....
Scala 終究無法成為 Haskell 嗎? @@
trait Monad[+a]{
def >>=[b, c <: Monad[b]](f: a => c): c
}
abstract class Maybe[+a] extends Monad[a]{
override
def >>=[b, c <: Monad[b]](f: a => c): c = this match{
// case Void => Void
case Just(a) => f(a)
}
}
case object Void extends Maybe[Nothing]
case class Just[+a](aa: a) extends Maybe[a]
println(Just(1).>>=[Int, Just[Int]]((x: Int) => Just(x * 2)))
==
* 另一方面,今天狀況很不好,還有待調整 ><
* computer science 不知不覺就聊得很兇... 結果進度全亂了 囧>
* bah, 我快累昏了,要睡要睡要睡,啥屁話以後再說
4 retries:
Sorry again XDrz||||
還好啦,觸類旁通一下 XDDD
「Maybe」 Monad in Scala
所以可能性是一半一半...XD
顆顆,兩種可能看成可能性各一半通常會估錯柳
Post a Comment
Note: Only a member of this blog may post a comment.