在 Scala 中使用流进行延迟评估

Lazily evaluation in scala with streams

我假设 s1.toStream 将避免在下面函数的第二行中创建不需要的元组是否正确?

  def areEqual(s1: String, s2: String): Boolean = {
    if (s1.length != s2.length) false
    else (s1.toStream zip s2).forall { case (c1, c2) => c1 == c2 }
  }
             ^^^^^^^^

谢谢

你是对的,因为一旦第一对 c1, c2 不相等,forAll 就会 return false,所以它不会生成以下组合。