Bu makalede, büyük ilgi ve tartışmalara yol açan güncel bir konu olan Özyineleme konusunu ele alacağız. Özyineleme, hem alandaki uzmanların hem de etkisini ve kapsamını daha iyi anlamakla ilgilenen kişilerin araştırmalarına, analizlerine ve düşüncelerine konu olmuştur. Yıllar geçtikçe Özyineleme gelişti ve farklı nüanslar kazandı, bu da onu son derece karmaşık ve çok boyutlu bir konu haline getirdi. Bu anlamda, bunun en alakalı yönlerini, sonuçlarını ve bireysel ve kolektif düzeyde olası yansımalarını derinlemesine incelemek çok önemlidir. Bu makalede, bugün çok alakalı olan bu konuya kapsamlı ve zenginleştirici bir vizyon sağlamak amacıyla Özyineleme evrenini birçok yönüne değinerek 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 (atfıta 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.