5
所以我明白,按需呼叫只不过是按名称的备忘录版本。在Martin Odersky关于Coursera的FP课程中,他在第7.3课(懒惰评估)中提到,如果Streams是使用call-by-name实现的,那么它可能会导致计算复杂度的爆炸。斯卡拉流按需呼叫(懒惰)vs按名称呼叫
这是什么样的爆炸?
的call-by-名称:
def cons[T](hd: T, tl: => Stream[T]) = new Stream[T] {
def head = hd
def tail = tl
...
}
的call-by-需求:
def cons[T](hd: T, tl: => Stream[T]) = new Stream[T] {
def head = hd
lazy val tail = tl
...
}
复制请检查链接, – sailor 2018-01-28 02:06:55
@sailor - 感谢,更正 – 2018-02-07 19:14:42