Bu yüzden, bu ihtiyaca göre çağrının sadece ad-by-adının hafızaya alınmış bir versiyonu olduğunu anlıyorum. Martin Odersky'nin Coursera'daki FP Kursunda, ders 7.3'te (Lazy Evaluation), Akımlar isim-ismi kullanılarak uygulandığında, potansiyel olarak hesaplama karmaşıklığında bir patlamaya yol açabileceğinden bahseder.Scala Stream çağrı-by-need (lazy) vs ad-by-isim
Böyle bir yanıltmaya bir örnek ne olurdu?
Çağrı isme göre:
def cons[T](hd: T, tl: => Stream[T]) = new Stream[T] {
def head = hd
def tail = tl
...
}
Çağrı-by-muhtaç:
def cons[T](hd: T, tl: => Stream[T]) = new Stream[T] {
def head = hd
lazy val tail = tl
...
}
kopyalanmış – sailor
@sailor: memoization olmadan, bu dizinin uzunluğu bir doğrusal yavaşlama (ve yığın büyümesi) olurdu , düzeltildi –