Bugün Özyineleme'in büyüleyici dünyasına giriyoruz. Özyineleme tarih boyunca toplum üzerindeki etkisinden, kültürel alandaki önemine ya da günlük yaşamın farklı yönleriyle olan ilgisine bağlı olarak sayısız insanın ilgi ve merakını uyandırmıştır. Bu makale aracılığıyla, Özyineleme ile ilgili tüm yönleri, kökenlerinden gelecekteki olası sonuçlarına kadar derinlemesine araştırmayı ve analiz etmeyi amaçlıyoruz. Okuyucularımıza bu heyecan verici konunun eksiksiz ve zenginleştirici bir vizyonunu sunmak amacıyla, mevcut bağlamda önemini ve değerini ortaya çıkararak konunun birçok yönünü inceleyeceğiz.
Özyineleme ya da yinelge, en genel anlamıyla bir yapının (kendi kendine) yinelenmesidir. Özellikle matematik ve bilgisayar biliminde kullanılır. Bu yapılara yinelgen yapılar denir. Yinelgen bir yapı eğer kendine gönderme yapma (atıfta bulunma) özelliğiyle yinelgen ise bu tür yapılara özgöndergeli ya da kendine-göndergeli yapılar denir.
Matematiksel göndermeler (fonksiyonlar) yinelgen olarak tanımlanabilir. Örneğin doğal sayılarda tanımlı faktöriyel (çarpansal) göndermesi:
Aslında matematikte sadece göndermeler değil, kümeler dahil birçok kavram yinelgen olarak tanımlananır. Örneğin doğal sayılar kümesi aşağıdaki iki özelliği sağlayan en küçük kümedir:
Yaygın bir matematiksel kanıt çeşidi olan tümevarım çoğu zaman yinelgeye baş vurur. Örneğin Osman soyundan gelenlerin insan olduğu iki temel varsayım ile ispatlanabilir.
Kendi kendine atıfta bulunan bu ispat şekli, temel durum haricindeki her durum için bir önceki durumun doğru olduğunu kabul etmektedir. Örneğin 'ın torunu 'ın çocuğu insan olduğu için insandır. 'ın çocuğu ise Osman insan olduğu için insandır. Herhangi bir nesilden bu şekilde geriye gidilebilir.
Matematiktekine benzer şekilde, işlevler yinelgen olarak tanımlanabilir. Örneğin işlevsel bir programlama dili olan Common Lisp'te faktöriyel işlevi aşağıdaki gibi tanımlanabilir:
(defun fak(n) (if (<= n 1) 1 (* n (fak (- n 1)))))
Ya da daha yaygın olarak kullanılan C dilinde;
int fak(int n) { if (n<=1) return 1; return n*fak(n-1); }
Church tezine göre hesaplanabilir bütün işlevler, yinelgen işlevler ile ifade edilebilir.
Bazı programlama dilleri, yinelgen veri türlerine izin verir. Aşağıdaki betik parçası, Ocaml'de doğal sayı veri tipini tanımlamaktadır:
type dogal = SIFIR | SONRAKI of dogal
Ayrıca doğal ve yapay dillerin sözdizimleri ve dilbilgileri de yinelgen tanımlanabilir.