![]() |
Kuyruk Özyineleme |
![]() |
![]() |
#1 |
Prof. Dr. Sinsi
|
![]() Kuyruk ÖzyinelemeBilgisayar biliminde, kuyruk özyineleme özel bir Bilişim bilimi özyineleme çeşididir ![]() Tanımı Bir Yinelge 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 ![]() ![]() Önemi İşlev çağırma, dolayısıyla özyineleme göreceli olarak pahalı bir iştir ![]() öbekten (heap) yer tüketmesidir ![]() ![]() algoritma ve girdiye bağlı olarak çok uzayabilir ![]() ![]() ![]() ![]() ![]() ![]() 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, Cycle derleyici ya da yorumlayıcı çalışma zamanında yığının büyümesini engelleyebilir ![]() ![]() ![]() eniyileme işlemleri her derleyici tarafından gerçekleştirilmese de özellikle yaygın işlevsel dillerin derleyicileri tarafından gerçekleştirilir ![]() basit bir yığın örneği ve özyineleme, kuyruk özyineleme dönüşümü anlatılmalı Örnekler 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 eq0 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 1end Bu makale, online kullanıcı topluluğu tarafından oluşturulan ve düzenlenen özgür ansiklopedi projesi Wikipedia'nın Türkçe versiyonu Vikipedi'deki Kuyu Kebabı maddesinden kopyalanmıştır ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
|