Bunda başarılı olduğu takdirde, elde ettiği sonucu kendi komut vericisine (yukarıya) aktarır... vb. En sonunda ise, eğer bütün komut vericiler ken- di görevlerini yapmışlarsa, LOGO basıma geçebilmektedir. Bu anlatılanlar karmaşık mı geli- yor size? Öyle olsa da, kavgılamna— nıza gerek yok. Çünkü “recursion”' veri işlemin en tuhaf ve güç anlaşılır kavramlarından biridir. Bilgisayarın bütün hesap işlemlerine saydam bir şekilde ışık tutacak basit bir örnekle konuya açıklık getirmeye çalışalım: Örneğin, 3 sayısının faktöriyelini he- sapladığımızı düşünelim. Bu durum- da LOGO ilkin N— 1 olup olmadığı- nı sorar. Yanıt olumsuzdur. Ö zaman yordam (buna **1” diyelim) **3*” de- Berini kaydeder ve bir alt-yordamı 3- 1—2'nin faktöriyelini bulmakla gö- revlendirir. *2"” olarak adlandıraca- ğiniz yordam ise N— 1 olup olmadı- Bini yoklar; yanıt olumsuzdür ve yoör- dam **2” bu defa 2 değerini kayde- derken bir alt-alt-yordamı 2-1 — 1'in faktöriyelini bulmakla görevlendirir. Alt-alı-yordam **3”'de N'in değerinin 1 olup olmadığını sorar; yanıt olüum- ludur. Bu durumda yordam **3” bü- yük bir gururla yordam **2”ye sonu- cu aktarır. Şimdi yordam *“2”'nin kullanabileceği bir değeri vardır ve bunu 1x2-2 şeklinde kullanır. Bu sonuç ilk komut vericiye iletilir ve böylece o da tıpkı bir önceki gibi iş- lem yapabilecek bir değer edinmiş olurken bu (2) değerini kendi değeri olan (3) ile çarparak 6 sayısını bulur. Buysa, görüldüğü gibi, 3 sayısının faktöriyelidir: 3! Şimdi artık önemli olanın ne oldu- Bunu herhalde daha iyi anlaşılmakta- dır: Sorun bizzat çözülemediğinde, görevi bir başkasına aktarmak. Bu- nun temelinde yatan ilkeyi “gecikme- li uygulama” olarak nitelendirmek mümkündür. Burada bütün ara de- ğerler ve ara formüller depolanmak zorundadır ve bundan ötürü de re- kursif diller çok fazla bellek hacmi gerektirirler. LISP'in, ev ya da kişi- sel bilgisayarlarda bu denli ender gö- rülmesinin nedenlerinden biri de bu- dur. Ama depolama konusunda programcının kaygıya kapılmasına hiç gerek yoktur; çünkü bütün bun- ları LOGO-çeviricisi üstlenmiştir. Recursion'un ardında yatan ilke grafik olarak pek güzel gösterilebilir -“çocuk” dili LOGO'nun eğitsel yön- den taşıdığı büyük değerin kaynağı- nı da burada aramak gerekir. Bir ör- nek daha verelim: Geçen yüzyılın sonlarına doğru bazı matematikçiler son derece garip görünümlü birtakım eğriler keşfettiler. Bu eğrilere akade- mik çevrelerce “patalojik” damgası vuruldu. Çünkü bunlar, eğrilere iliş- kin peşin yargıları altüst etmişlerdi. Sözkonusu “hastalıklı” eğriler bu- lundukları yüzeyi en sonunda baştan- başa kaplıyorlardı; çünkü çok sık bir dallanma sürecine giriyorlardı. Öyle ki, her alt dal, dallanma sırasında ye- ni bir alt dal ve bu da başka bir alt Planlanır ve denenirse bu görünüm çıkıyor ortaya. dal... vb. oluşturuyordu Tıpkı recur- sion'da olduğu gibi. Bu yeni oluşumlar hiç de salt bir- takım oyunlar sonucunda ortaya çık- mış değillerdi; birçok alana yeni bil- giler kazandıran ve olağanüstü bilgi- sayar grafiklerine imkân veren bir bi- limin gelişmesi bu eğriler sayesinde olmuştur. Biz bu eğrilerden biri üze- rinde çalışmaya başladık (“Sierpins- ki-eğrisi”, adını bulucusundan almış- tı). Eğriyi LOGO dilinde göstermeye uğraşıyorduk. Ben bir gün sonrasın- da sinirlerim harap olmuş bir durum- da bu işten vazgeçerken, meslektaşım Lehmann, çalışmasını yılmadan sür- dürdü ve rekursif hilelere karşı yürüt- tüğü toplam 24 saatlik bir mücadele sonucunda basit görünümlü bir prog- ram yapmayı başardı. Gerçekten de, LOĞO'nun temel sözlük dağarcığına egemen olan herkes bu programı (an- lamasa bile) “okuyabilirdi”. Ama endi düşüncesi hakkında da düşünebilmek, insan zekâsının bir özelliği. Yapay zekâ dilleri bu özelliği Recursion aracılığıyla taklit eder. aynı program BASIC'de öylesine kapsamlı ve bir bakışta anlaşılması öylesine zordu ki, burada bunun dö- kümünü yapmaktan kaçınmak z0o- runda kaldık. Ayrıca, Pascal ile LOGO arasın- da bir karşılaştırma yapmaktan da çekindik. Çünkü LOGO'nun tipik grafik yetenekleri Pascal'da ya hiç yoktu, ya da aynı şekilde mevcuttu. Bu durum versiyona bağlı olarak de- Bişiklik gösteriyordu. Bu dilin ilk tas- lağında hiçbir grafik imkânı öngörül- memiştir. Bütün bu anlatılanlardan sonra, si- zin için hangi dilin en uygun dil ol- duğuna bilmem karar verebildiniz mi? Eğer veremediyseniz cesaretiniz kırılmasın. En iyisi, kişinin bunu biz- zat denemesi ve mizacına en uygun düşen dili sonunda kendi kendisinin seçmesidir. Programlama dillerinin seçimiyle araba ya da bilgisayar se- çimi arasında pek fazla bir fark yok- tur. ı