在Scala流中处理延迟计算表达式的一些内部细节是什么?

时间:2015-08-04 00:29:51

标签: scala stream

这不是一个怎样的问题,而是“幕后发生的事情?”题。当在下面的函数定义的上下文中计算表达式“fib.tail.tail.tail”时,我一直在努力更好地理解Scala中的内容:

   lazy val fib:Stream[Long]=
      Stream.cons(1, 
       Stream.cons(2, fib.zip(fib.tail).
             map(x=>x._1+x._2)))

我认为我的心理图片是正确的,但如果有更深刻的Scala经验的人可以批评它并让我知道缺少什么或不正确,我真的很感激。这是说明我的“心理模型”的图表:diagram of what happens in evaluation of lazily evaluated tail part of a Scala Stream

提前感谢您的指导!

0 个答案:

没有答案