Tembel değerlendirme

Tembel değerlendirme, 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 imkân ş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ı, imkân tanımazken böyle bir işlev, tembel değerlendirmeli dillerde yazılabilir.

Tembel dillere örnek olarak Haskell verilebilir.

This article is issued from Vikipedi - version of the 3/8/2013. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.