标签: scala
我有以下代码段:
def sequence[A](a: List[Option[A]]) : Option[List[A]] = a match { case Nil => Some(Nil) case h :: t => h flatMap (hh => sequence(t) map (hh :: _)) }
递归如何工作?递归是否会先发生(调用sequence(t)直到它获得Nil)并在执行map之后?
sequence(t)
Nil