私は持っています:
val having: Option[String] = ...
val averageStream = having match {
case Some(expr) => stream[TimeMovingAverage].filter("name = '#name'").where(expr)
case None => stream[TimeMovingAverage].filter("name = '#name'")
}
重複を排除するいくつかのscalaz魔法はありますか?
私は次のようなことをすることができます
val averageStream1 = stream[TimeMovingAverage].filter("name = '#name'")
val averageStream2 = having.map(averageStream1.where(_))
しかし、それは少し厄介なようです。私は次のようなものを探していると思います
val averageStream = stream[TimeMovingAverage].filter("name = '#name'") |?| having.cata(_.where(_), _)
// Clearly some ambiguities with the _'s here