Maybe

いわゆるHaskellのMaybeと同じようなものです。 Scala標準ライブラリには、すでにscala.Optionというものがありますが、いくつかの理由により、Scalaz独自のものが作られました。

具体的に作られた理由、標準のOptionとの違いを挙げると

  • 標準のOptionは共変(covariant)だが、ScalazのMaybeは非変(invariant)
  • 標準の implicit def option2Iterable[A](xo: Option[A]): Iterable[A] というメソッドの存在を嫌った
  • 標準のOptionにはgetforeachなどの、安全ではなかったり副作用前提のメソッドがあるが、ScalazのMaybeにはそういったメソッドは存在しない

results matching ""

    No results matching ""