1. ing. tembel.

    programlamada, bir eylemi gerekli olana kadar ertelemeyi ifade eden kelime. eğer gerekirse o eylem gerçekleştirilir, gerekmezse eylem gerçekleştirilmediği için performanstan boş yere ödün vermek gerekmez. birden fazla terimin önünde niteliyici olarak kullanılabildiği için, başlığını bu şekilde genel açmayı uygun gördüm. bir eylemi gerçekleştirken tembel olmak, eğer doğru şekilde kullanıldıysa, ram kullanımı ya da cpu kullanımının birinden tasarruf sağlar. aynı zamanda program hızını da artırabilir .

    : sanırım türkçeye olarak çevirebiliriz. bir işlemin (genelde hesaplamanın) gerekli olana kadar yapılmamasıdır. eğer hesaplama sonuçları, kullanılmayacaklarsa o işlem hiç yapılmaz böylece daha verimli bir program olur. aşağıda kullanımı için birkaç küçük örnek vereceğim.

    1:
    mesela bir program yazdınız, 'ta puanı en çok olan yazarı bulmasını istiyorsunuz. örneğin kısa kalması adına sözlükte sadece dört yazar olduğunu düşünün. şöyle bir veri yapısı olusturdunuz:

    yazar_puan = {"jack": 8000, "sally": 9000, "rocco": 1000, "stoya": 2500 }

    şimdi normalde kullandığınız programlama dilinde, bir veri yapısındaki en büyük elemanı bulan hazır bir fonksiyon vardır. ne yapar bu fonksiyon; ya da başka bir sıralama algoritması ile çabucak tüm elemanları sıralayıp en büyük değerli elemanı size verir. 'ta bir pivot eleman seçilip, diğer bütün elemanlarla sırasıyla kıyaslanır. eğer başka bir eleman kendisinden büyükse önüne, küçükse arkasına yazılır. yani pivot ortada kalacak şekilde iki farklı küme oluşmuş olur. ardından aynı işlem iki kümede de yapılır. sıralama hiç değişmeyene kadar devam edilir. bizim örneğimizde listenin küçük olması yüzünden bu şekilde gerçekleşmeyecek ama mantık aynı.

    bu işlem tembel bir şekilde yapılmazsa şu şekilde gerçekleşir:
    pivot: jack
    adım 1:
    jack < sally : sally'i jack'in onune at: [sally], jack, [rocco, stoya]
    sonra jack ile sırasıyla rocco ve stoya'yı karşılaştırıyoruz. onlar jack'ten küçük oldukları için jack'ın arkasında kalıyorlar.
    gördüğünüz gibi jack'in sağında ve solunda iki küme oluştu; kendi puanından büyükler ve küçükler. ilk küme tek elemanlı olduğu için işlem yok. ikinci kümeyi tekrar sıralamamız lazım.
    adım 2:
    pivot rocco
    rocco < stoya : stoya'yı rocco'nun önüne at.

    yani sıralamamız sally, jack, stoya ve rocco şeklinde oldu. en yüksek değer sally'e ait olduğu için program size sally cevabını verecek.

    ama bu gördüğünüz gibi bu çok küçük bir örnekti. bunu on bin yazarla yaptğınızı düşünüp, yapacağınız işlem adetini hayalinizde canlandırmaya calışın.

    aynı işlemi tembel bir şekilde yapsa ne olurdu: adım 1'i yapardı. jack'ten bir tek sally'nin büyük olduğunu, onun da en başa alındığını görünce diğer işlemleri (adım 2) yapmazdı. yani pivotun arka tarafında kalanları boşuna sıralamaz, böylece gereksiz hesaplamalardan kaçınmış olurdu.

    2:

    x = 5
    y= 3
    z =4

    (x < y) && (y< z) bu işlemde && sembolü "ve" işlemi yerine yazılmıştır. eğer iki ifade de doğruysa doğru olarak sonuçlanır. bunun için iki işleme de bakarız: yanlış ve doğru = yanlış olarak sonuçlanır.

    aynı işlem tembel sekilde yapılsaydı ilk işlemde sonuç yanlış çıkınca ikinci işlemi hesaplamadan sonucu yanlış olarak bulacaktık ve hesaptan tasarruf edecektik.

    yukarıda verdiğim linkte olduğu gibi ve anahtar kelimesi programlama dillerinde hesapları tembel şekilde yapar. sadece gerek olduğunda hesap yaparlar. bunun dışında fonksiyonel programlama dilleri tembel hesaplamaya yatkındır. if then else kalıbı bu iş için kullanılabilir.

    ya da : bu ikisi birbirlerinin yerine kullanılıyorlar ama aslında initialization, loading'in alt kümesi sanırım. lazy loading'i turkceye tembel yükleme olarak çevirebiliriz sanırım. bir objeyi, sadece ilk kez lazım olduğunda oluşturmak, yüklemek ya da başlangıç değeri atamak anlamına gelir.
    mesela bir kullanıcı bir siteye girdiğinde, fotoğrafların, kullanıcı sayfayı aşağı doğru kaydırdıkça oluşması fotoğrafların tembel şekilde yüklendiğini gösterir. böylece kullanıcının sayfayı görüp hemen terk etmesi durumunda, kullanılmayacak fotoğraflar boşuna oluşturulmamış olur, ve websitesi başlangıçta tüm fotoğrafları yüklemekle zaman kaybetmeyeceği için daha hızlı yüklenmiş olur .
    türkçe bir kaynak için şuraya bakabilirsiniz.

    not: eğer yazım ya da bilgi yanlışı varsa bildirirseniz sevinirim. yıllar sonra ilk kez türkçe klavye kullanıyorum, eğer yanlış yazılmış harf varsa da bildirirseniz düzeltirim.
    #225446 ben buyum abi ya | 4 yıl önce (  4 yıl önce)
    0bilişim terimi, genel terim