如果我用一个带有选项的值定义创建了一个for comprehension,它就会按预期工作:res0: Option[Int] = Some(20)scala> for (a <- Right(4).right; b <-Right(5).right) yield a * b
res1: Either[Nothing,Int] =
我是scala和大多数函数式语言的新手,目前我正在尝试分解一个数字。factors = for(int <- 2 until math.ceil(math.sqrt(number)).toInt if number%int == 0) yield int
我在想,如果我声明scalaval是惰性的,那么当我调用factors.head时,它会不会为理解计算整个