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.
Geçmişi
Lazy Evaluation, lambda calculus için Christopher Wadsworth tarafından tanıtılmış ve Plessey System 250 tarafından bir Lambda-Calculus Meta-Machine'in kritik bir parçası olarak kullanılmış, yetenekle sınırlı bir adres alanındaki nesnelere erişim için çözümleme ek yükünü azaltmıştır. Programlama dilleri için, bağımsız olarak Peter Henderson ve James H. Morris ve Daniel P. Friedman ve David S. Wise tarafından tanıtılmıştır.
Uygulama
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.
Kaynakça
- ^ Civilizing Cyberspace: The Fight For Digital Democracy. Kenneth Hamer-Hodges (İngilizce). Book Writing Inc. 31 Aralık 2019. s. 410. Erişim tarihi: 30 Ağustos 2023.
- ^ Henderson, Peter; Morris, James H. (1976). "A lazy evaluator" (İngilizce). ACM Press: 95-103. doi:10.1145/800168.811543.
- ^ (PDF). Daniel P. Friedman ile David S. Wise. Edinburg University Press. 20 Temmuz 1976. 30 Ağustos 2023 tarihinde kaynağından (PDF) arşivlendi. Erişim tarihi: 30 Ağustos 2023.
![]() | Programlama dili ile ilgili bu madde seviyesindedir. Madde içeriğini genişleterek Vikipedi'ye katkı sağlayabilirsiniz. |
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Lazy Evaluation bir programlama terimi olarak kesin strict degerlendirme teriminin karsiti olarak kullanilir Tembel degerlendirmeli dillerde degerler ihtiyac duyuldugu anda uretilir daha once degil Bu islemin son ana kadar ertelenmesinden dolayi tembel terimi kullanilmistir GecmisiLazy Evaluation lambda calculus icin Christopher Wadsworth tarafindan tanitilmis ve Plessey System 250 tarafindan bir Lambda Calculus Meta Machine in kritik bir parcasi olarak kullanilmis yetenekle sinirli bir adres alanindaki nesnelere erisim icin cozumleme ek yukunu azaltmistir Programlama dilleri icin bagimsiz olarak Peter Henderson ve James H Morris ve Daniel P Friedman ve David S Wise tarafindan tanitilmistir UygulamaKesin degerlendirmeli dillerde bunun tersine degerler ihtiyac duyulacak olsun ya da olmasin hemen uretilir ve saklanir Tembel degerlendirmeye verilen bir diger ad da isimle cagrilan dir call by name Bunun karsiti ve dolayisiyla kesin degerlendirmenin es anlamlisi olan terim ise deger ile cagrilan dir call by value Bir esitlikte bir deger degisken kullanildiginda kesin degerlendirmeli yani deger ile cagrilan dillerde daha onceden uretilmis ve saklanmakta olan deger konulur Tembel degerlendirmeli yani isim ile cagrilan dillerde ise degerin elde edilmesi icin gereken bilgi konulur ve ihtiyac duyulacagi ana kadar degerin hesaplanmasi ertelenir Bu ozellik tembel degerlendirmeli dillerde farkli bir yaklasimi kullanabilmeye imkan saglar Kesin degerlendirmeli dillerde ihtiyac duyulsun ya da duyulmasin sonucun hemen elde edilmeye calisilacak olmasi kendi kendini sonsuza kadar cagiracak bir islevin function yazilmasina hafiza tasmasina yol acacagindan dolayi imkan tanimazken boyle bir islev tembel degerlendirmeli dillerde yazilabilir Tembel dillere ornek olarak Haskell verilebilir Kaynakca Civilizing Cyberspace The Fight For Digital Democracy Kenneth Hamer Hodges Ingilizce Book Writing Inc 31 Aralik 2019 s 410 Erisim tarihi 30 Agustos 2023 Henderson Peter Morris James H 1976 A lazy evaluator Ingilizce ACM Press 95 103 doi 10 1145 800168 811543 PDF Daniel P Friedman ile David S Wise Edinburg University Press 20 Temmuz 1976 30 Agustos 2023 tarihinde kaynagindan PDF arsivlendi Erisim tarihi 30 Agustos 2023 Programlama dili ile ilgili bu madde taslak seviyesindedir Madde icerigini genisleterek Vikipedi ye katki saglayabilirsiniz