Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将scalaz析取集合转换为单个析取_Scala_Scalaz - Fatal编程技术网

将scalaz析取集合转换为单个析取

将scalaz析取集合转换为单个析取,scala,scalaz,Scala,Scalaz,根据以下方法: def foo(seq: Seq[Long]) : Seq[\/[String, Long]] = seq map { v => for { bar <- returnsOptionLong1(v) \/> "first was None" baz <- returnsOptionLong2(bar) \/> "second was None" } yield baz } def qux(initial: Seq[\/[

根据以下方法:

def foo(seq: Seq[Long]) : Seq[\/[String, Long]] = seq map { v =>
  for {
    bar <- returnsOptionLong1(v) \/> "first was None"
    baz <- returnsOptionLong2(bar) \/> "second was None"
  } yield baz  
}
def qux(initial: Seq[\/[String, Long]]) : \/[String, Seq[Long]] = {
  // ... Fill-in implementation here ...
}
换句话说:如何使用scalaz将析取序列转换为右边为序列的析取


注意:如果一个更干净的实现还需要对
foo
进行更改(例如,修改涉及将
map
更改为
flatMap
),请也包括这些内容。

您可以使用
语法.遍历下的
sequenceU
将其“由内而外”或者使用
traverseU
传入
Long=>String\/Long
一次性完成。

ah是的。我最初使用的是sequenceU,但唉,我用错了。谢谢阿德尔伯特!