What have you found for these years?

2009-12-09

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:

老林 said...

Sorry again XDrz||||

godfat 真常 said...

還好啦,觸類旁通一下 XDDD

jaiyalas said...

「Maybe」 Monad in Scala

所以可能性是一半一半...XD

godfat 真常 said...

顆顆,兩種可能看成可能性各一半通常會估錯柳

Post a Comment

All texts are licensed under CC Attribution 3.0