Tembel Değerlendirme

Kısaca: Tembel değerlendirme (``lazy evaluation``), bir programlama terimi olarak, kesin (strict) değerlendirme teriminin karşıtı olarak kullanılır. Tembel değerlendirmeli dillerde değerler, ihtiyaç duyulduğu anda üretilir, daha önce değil. Bu işlemin, son ana kadar ertelenmesinden dolayı tembel terimi kullanılmıştır. ...devamı ☟

Tembel değerlendirme (``lazy evaluation``), bir programlama terimi olarak, kesin (strict) değerlendirme teriminin karşıtı olarak kullanılır. Tembel değerlendirmeli dillerde değerler, ihtiyaç duyulduğu anda üretilir, daha önce değil. Bu işlemin, son ana kadar ertelenmesinden dolayı tembel terimi kullanılmıştır.

Kesin değerlendirmeli dillerde, bunun tersine değerler, ihtiyaç duyulacak olsun ya da olmasın hemen üretilir ve saklanır.

Tembel değerlendirmeye verilen bir diğer ad da `isimle çağrılan`dır (``call by name``). Bunun karşıtı ve dolayısıyla kesin değerlendirmenin eş anlamlısı olan terim ise `değer ile çağrılan`dır (call by value).

Bir eşitlikte, bir değer/değişken kullanıldığında, `kesin değerlendirmeli` yani `değer ile çağrılan` dillerde, daha önceden üretilmiş ve saklanmakta olan değer konulur. `Tembel değerlendirmeli` yani `isim ile çağrılan` dillerde ise değerin elde edilmesi için gereken bilgi konulur ve ihtiyaç duyulacağı ana kadar değerin hesaplanması ertelenir.

Bu özellik, tembel değerlendirmeli dillerde farklı bir yaklaşımı kullanabilmeye imkan şağlar. Kesin değerlendirmeli dillerde, ihtiyaç duyulsun ya da duyulmasın sonucun hemen elde edilmeye çalışılacak olması, kendi kendini sonsuza kadar çağıracak bir işlevin (function) yazılmasına, hafıza taşmasına yol açacağından dolayı, imkan tanımazken böyle bir işlev, tembel değerlendirmeli dillerde yazılabilir.

Tembel dillere örnek olarak Haskell verilebilir.

Kaynaklar

Vikipedi

İlgili konular

haskell programlama

Bu konuda henüz görüş yok.
Görüş/mesaj gerekli.
Markdown kullanılabilir.