: , , -: , , , None, , ( min) ( max), - .
: i1 - Some(1) i2 - None, , 1.
, Option[A] Int. , Scalaz 7 :
import scalaz._, Scalaz._
optionMonoid(Semigroup.minSemigroup[Int]).append(i1, i2) getOrElse defaultValue
:
Tags.Min(i1) |+| Tags.Min(i2) getOrElse defaultValue
, , , .
, :
(for { x <- i1; y <- i2 } yield math.min(x, y)) getOrElse defaultValue
, :
i1.flatMap(x => i2.map(math.min(x, _))) getOrElse defaultValue
, , - "" (min) (Option). Scalaz :
import scalaz._, Scalaz._
(i1 |@| i2)(math.min) getOrElse defaultValue
, , .