在 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,所以它不会生成以下组合。
我假设 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,所以它不会生成以下组合。