Cevapların çoğu, sonsuz listeler ve hesaplamanın değerlendirilmemiş bölümlerinden elde edilen performans kazanımları gibi konulara giriyor, ancak tembellik için daha fazla motivasyon eksik: modülerlik .
Klasik argüman, John Hughes'un "Neden İşlevsel Programlamanın Önemi" başlıklı makalesinde belirtilmiştir . Bu makaledeki anahtar örnek (Bölüm 5), alfa-beta arama algoritmasını kullanarak Tic-Tac-Toe oynuyor. Anahtar nokta (s. 9):
[Tembel değerlendirme], bir programın çok sayıda olası cevapları oluşturan bir jeneratör ve uygun olanı seçen bir seçici olarak modülerleştirilmesini pratik hale getirir.
Tic-Tac-Toe programı, belirli bir pozisyondan başlayarak tüm oyun ağacını üreten bir fonksiyon ve onu tüketen ayrı bir fonksiyon olarak yazılabilir. Çalışma zamanında bu, tüm oyun ağacını kendiliğinden oluşturmaz, yalnızca tüketicinin gerçekten ihtiyaç duyduğu alt bölümleri oluşturur. Tüketiciyi değiştirerek alternatiflerin üretilme sırasını ve kombinasyonunu değiştirebiliriz; Jeneratörü hiçbir şekilde değiştirmenize gerek yok.
İstekli bir dilde, bu şekilde yazamazsınız, çünkü muhtemelen ağacı oluşturmak için çok fazla zaman ve bellek harcarsınız. Yani sen de sonunda:
- Üretimin ve tüketimin aynı işleve birleştirilmesi;
- Sadece belirli tüketiciler için en iyi şekilde çalışan bir üretici yazmak;
- Kendi tembelliğinizin versiyonunu uygulamak.