【问题标题】:More terse way to define Scala Stream object?更简洁的方式来定义 Scala Stream 对象?
【发布时间】:2016-11-29 18:49:19
【问题描述】:

我有以下几点:

val notDivisibleBy2: Stream[Long] = 3L #:: 5L #:: notDivisibleBy2.tail.map(_ + 2)
println(notDivisibleBy2.take(3))

如果5L 被删除,StackOverflow 会被发出。有没有办法让尾部计算工作,以便不必指定 5L

【问题讨论】:

    标签: scala stream


    【解决方案1】:

    当您删除5L 然后调用tail 函数时,您正在进入一个无限循环。如您所见,notDivisibleBy2 的尾部是notDivisibleBy2.tail.map(_ + 2)。因此,您需要同时删除 5L 和对 tail 的调用。

    val notDivisibleBy2: Stream[Long] = 3L #:: notDivisibleBy2.map(_ + 2)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多