Kuyruk özyineleme - Vikipedi
İçeriğe atla
Ana menü
Gezinti
  • Anasayfa
  • Hakkımızda
  • İçindekiler
  • Rastgele madde
  • Seçkin içerik
  • Yakınımdakiler
Katılım
  • Deneme tahtası
  • Köy çeşmesi
  • Son değişiklikler
  • Dosya yükle
  • Topluluk portalı
  • Wikimedia dükkânı
  • Yardım
  • Özel sayfalar
Vikipedi Özgür Ansiklopedi
Ara
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç

İçindekiler

  • Giriş
  • 1 Tanımı
  • 2 Önemi
  • 3 Örnekler

Kuyruk özyineleme

  • Čeština
  • Deutsch
  • English
  • Suomi
  • Français
  • עברית
  • 日本語
  • 한국어
  • Lietuvių
  • Nederlands
  • Polski
  • Русский
  • Српски / srpski
  • Svenska
  • Українська
  • 中文
Bağlantıları değiştir
  • Madde
  • Tartışma
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Araçlar
Eylemler
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Genel
  • Sayfaya bağlantılar
  • İlgili değişiklikler
  • Kalıcı bağlantı
  • Sayfa bilgisi
  • Bu sayfayı kaynak göster
  • Kısaltılmış URL'yi al
  • Karekodu indir
Yazdır/dışa aktar
  • Bir kitap oluştur
  • PDF olarak indir
  • Basılmaya uygun görünüm
Diğer projelerde
  • Vikiveri ögesi
Görünüm
Vikipedi, özgür ansiklopedi
Bu madde, öksüz maddedir; zira herhangi bir maddeden bu maddeye verilmiş bir bağlantı yoktur. Lütfen ilgili maddelerden bu sayfaya bağlantı vermeye çalışın. (Eylül 2022)
Bu madde hiçbir kaynak içermemektedir. Lütfen güvenilir kaynaklar ekleyerek madde içeriğinin geliştirilmesine yardımcı olun. Kaynaksız içerik itiraz konusu olabilir ve kaldırılabilir.
Kaynak ara: "Kuyruk özyineleme" – haber · gazete · kitap · akademik · JSTOR
(Ekim 2016) (Bu şablonun nasıl ve ne zaman kaldırılması gerektiğini öğrenin)

Bilgisayar biliminde, kuyruk özyineleme özel bir özyineleme çeşididir.

Tanımı

[değiştir | kaynağı değiştir]

Bir işlevin döndüreceği değer, doğrudan çağırdığı işlevin döndüreceği değere eşitse buna kuyruk özyineleme denir. Konu özyineleme ile sınırlı olmasa da, özyineleme sırasında işlev çağırma miktarının çokluğu nedeniyle önem kazanır.

Önemi

[değiştir | kaynağı değiştir]

İşlev çağırma, dolayısıyla özyineleme göreceli olarak pahalı bir iştir. Bunun sebebi işlevlerin çağrılması ve sonlanması arasında yığından (stack) ve muhtemelen öbekten (heap) yer tüketmesidir. Özyineleme sırasında çağrılan işlev, kendi içinden çağrılan bütün işlevlerin bitmesini beklemektedir. Bu zincir yapı algoritma ve girdiye bağlı olarak çok uzayabilir. Bu durumda eşdeğer döngüsel algoritmadan yavaş olacağı gibi, fazla hafıza tüketimi nedeniyle hesaplama bitmeden sonlandırılabilir.

Eğer özyineleme kuyruk yapısındaysa, derleyici ya da yorumlayıcı çalışma zamanında yığının büyümesini engelleyebilir. Bunun sebebi, artık işlevin yığında yer kaplamasına gerek kalmaması ve kendisini çağıran işleve değer olarak doğrudan kendi çağırdığı işlevin çıktısının döndürülebilmesidir. Bu tarz eniyileme işlemleri her derleyici tarafından gerçekleştirilmese de özellikle yaygın işlevsel dillerin derleyicileri tarafından gerçekleştirilir.

Örnekler

[değiştir | kaynağı değiştir]

Faktöriyel işlevi basit olarak Standart ML'de şu şekilde tanımlanabilir:

fun fak 0 = 1
  | fak n = n * fak(n - 1)

Özyinelemenin gerçekleştiği n ≠ {\displaystyle \neq } {\displaystyle \neq }0 durumunda döndürülen değer n*fak(n-1) olduğundan bu kod kuyruk özyineleme yapısında değildir.

Öte yandan ikinci bir işlev (fak2) sayesinde bu kod kolaylıkla kuyruk yapıya çevirilebilir;

fun fak n =
    let
        fun fak2 0 p = p
          | fak2 m p = fak2 (m-1) (p * m)
    in
      fak2 n 1
end
"https://tr.wikipedia.org/w/index.php?title=Kuyruk_özyineleme&oldid=35972334" sayfasından alınmıştır
Kategoriler:
  • Özyineleme
  • Bilgisayar programlama araçları
  • Scheme
Gizli kategoriler:
  • Öksüz maddeler Eylül 2022
  • Kaynakları olmayan maddeler Ekim 2016
  • Sayfa en son 18.06, 3 Eylül 2025 tarihinde değiştirildi.
  • Metin Creative Commons Atıf-AynıLisanslaPaylaş Lisansı altındadır ve ek koşullar uygulanabilir. Bu siteyi kullanarak Kullanım Şartlarını ve Gizlilik Politikasını kabul etmiş olursunuz.
    Vikipedi® (ve Wikipedia®) kâr amacı gütmeyen kuruluş olan Wikimedia Foundation, Inc. tescilli markasıdır.
  • Gizlilik politikası
  • Vikipedi hakkında
  • Sorumluluk reddi
  • Davranış Kuralları
  • Geliştiriciler
  • İstatistikler
  • Çerez politikası
  • Mobil görünüm
  • Wikimedia Foundation
  • Powered by MediaWiki
Kuyruk özyineleme
Konu ekle