作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Haskell 摘要 these包裹:
The 'These' type represents values with two non-exclusive possibilities
data These a b = This a | That b | These a b
sealed trait These[+A, +B] {
def thisOption: Option[A]
def thatOption: Option[B]
}
trait ThisLike[+A] {
def `this`: A
def thisOption = Some(a)
}
trait ThatLike[+B] {
def `that`: B
def thatOption = Some(b)
}
case class This[+A](`this`: A) extends These[A, Nothing] with ThisLike[A] {
def thatOption = None
}
case class That[+B](`that`: B) extends These[Nothing, B] with ThatLike[B] {
def thisOption = None
}
case class Both[+A, +B](`this`: A, `that`: B) extends These[A, B]
with ThisLike[A] with ThatLike[B]
Either
的事情。 s:
type These[A, B] = Either[Either[A, B], (A, B)]
最佳答案
scalaz 有这些,也称为 \&/
https://github.com/scalaz/scalaz/blob/series/7.2.x/core/src/main/scala/scalaz/These.scala
关于scala - 是否有与 Haskell 的 Data.This (A, B, or (A and B)) 等效的 Scala?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26684951/
我是一名优秀的程序员,十分优秀!