scala - 使用流在 scala 中进行延迟评估

标签 scala lazy-evaluation

我是否正确假设 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 就会返回 false,因此不会生成以下组合。

关于scala - 使用流在 scala 中进行延迟评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49395630/

相关文章:

scala - 跳过Scala可迭代中的前N个元素

java - Scala-maven-plugin 执行失败

c# - 了解 C# 中 LINQ 中的惰性求值

Haskell:定义严格的数据

haskell - "where"关键字是懒惰的吗?

scala - lazyMap其实不懒惰?

scala - 是否可以在 Scala 中表达等效的 kotlin 'with' 方法?

scala - Akka 路由 : Reply's send to router ends up as dead letters

scala - 在 Gatling 重复 block 中使用流

Haskell,测量函数的 CPU 时间