作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有人遇到过一段代码来实现枚举的条件组合?基本上考虑到我有
val decideEnumeratee : Enumerate[A,Either[L,R] = Enumerate.map(a=>???)
val leftSideEnumeratee : Enumeratee[L,B] = Enumeratee.map(l=>???)
val rightEnumeratee: Enumeratee[R,B] = Enumeratee.map(r=>???)
def either[L,R,B](left:Enumeratee[L,B], right,Enumeratee[R,B]): Enumeratee[Either[L,R],B] = ???
最佳答案
这是 either
的定义:
def either[A, B, C](left: Enumeratee[A, C], right: Enumeratee[B, C])
(implicit ec: ExecutionContext) = new Enumeratee[Either[A, B], C] {
def applyOn[IR](inner: Iteratee[C, IR]) = {
val (liter, lenum) = Concurrent.joined[C]
val (riter, renum) = Concurrent.joined[C]
val liter2 = Enumeratee.mapConcat { x: Either[A, B] =>
x.left.toSeq
} compose left transform liter
val riter2 = Enumeratee.mapConcat { x: Either[A, B] =>
x.right.toSeq
} compose right transform riter
val fresult = lenum interleave renum apply inner
Enumeratee.zip(liter2, riter2) mapM { _ => fresult }
}
}
关于scala - 有条件地组合枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16894096/
我是一名优秀的程序员,十分优秀!