1
假設結合習慣的方法,我們有包裹在不同的單子兩個值(例如嘗試和Option):用不同的單子在斯卡拉
val x: Option[Int] = Some(10)
val y: Try[Int] = Success(4)
,我們希望有值的總和。一會寫
val z = for {
xval <- x
yval <- y
} yield xval + yval
但它不會被編譯,因爲類型錯誤。有沒有一種慣用的斯卡拉方式來解決這個問題?
[單子一般不是可組合/組合(http://tonymorris.github.io/blog/posts/monads-do-not-compose /),但是用試試你可以使用.toOption – 2014-09-19 19:59:34
你不會真的在Haskell中合併monad,你只需要將它們堆疊起來,創建更深更深的嵌套 – 2014-09-19 20:00:16
Monads不可組合,尋找Monad變形金剛, 'TryT [Option,A]' – 4lex1v 2014-09-19 20:01:49