Fonksiyonel Programlama - Tembel Değerlendirme

Tembel değerlendirme, bir ifadenin değerine ihtiyaç duyulana kadar değerlendirilmesini tutan bir değerlendirme stratejisidir. Tekrarlanan değerlendirmeyi önler.Haskell temelleri Tembel Değerlendirmeye dayanan böyle işlevsel bir programlama diline iyi bir örnektir.

Diskten yalnızca gerekli sayfaları yükleyerek performanslarını artırmak için Unix eşleme işlevlerinde tembel değerlendirme kullanılır. Kalan sayfalar için bellek ayrılmayacaktır.

Tembel Değerlendirme - Avantajlar

  • Dil çalışma zamanının, ifadenin nihai sonucuyla doğrudan bağlantılı olmayan alt ifadeleri atmasına izin verir.

  • Geçici hesaplamaları ve koşullarını atarak bir algoritmanın zaman karmaşıklığını azaltır.

  • Programcının, herhangi bir döngüsel bağımlılık içermedikleri sürece, veri yapılarının bileşenlerini başlattıktan sonra sıra dışı olarak erişmesine izin verir.

  • Seyrek erişilen verileri yüklemek için en uygun yöntemdir.

Tembel Değerlendirme - Dezavantajlar

  • Dil çalışma zamanını, oluşturarak nihai sonuçta gerekli olana kadar alt ifadelerin değerlendirmesini tutmaya zorlar thunks (geciken nesneler).

  • Bazen bir algoritmanın uzay karmaşıklığını artırır.

  • Performansını bulmak çok zordur çünkü icra edilmeden önce ifadeler içerir.

Python kullanarak Tembel Değerlendirme

rangePython'daki yöntem, Tembel Değerlendirme kavramını izler. Daha büyük aralıklar için yürütme süresinden tasarruf sağlar ve hiçbir zaman tüm değerleri aynı anda istemeyiz, bu nedenle bellek tüketimini de azaltır. Aşağıdaki örneğe bir göz atın.

r = range(10) 
print(r) 
range(0, 10) 
print(r[3])

Aşağıdaki çıktıyı üretecektir -

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
3