Commodore sayı 45, sayfa 61

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 61

(T son ifade) İstenilen çoklukta yüklem ifade çiftleri olabilir. LISP bir COND ifade bulduğunda, verili yüklemleri sırayla incelemeye başlar. Verdiği değer, ilk yüklemle “doğru” bir değer vermek üzere eleştirilen ifadenin değeridir. Önceki örnekte, Sabit T nihai yüklem olarak kullanılıyor. Bunun değeri her zaman “doğru” olduğuna göre, buna tekabül eden son ifade hata olarak görülebilir. O halde diğer tüm yüklemlerde çıkacak sonuç “yanlış”. O zaman, parantezler olmadan koşullu biçim şöyle okunabilir:

EĞER yüklem 1 “doğru” ise O ZAMAN ifade 1'in değerini ver YADA yüklem 2 “doğru” O HALDE en son ifadenin değerini ver LISP'in bileşik yüklemlere ihtiyacı olduğu zaman, AND ve OR kullanarak onları oluşturabilir. Bu fonksiyonların her biri belli sayıda argümanla baş edebilir. Normal mantık yasaları bir sonucu varmalarını sağlayana kadar, bu birer birer değerlendirirler. Böylelikle AND argümanları listenin sonuna gelene kadar (ve T verene kadar) ya da argümanlarından biri NIL değerini verene kadar değerlendirmeyi sürdürecektir. OR değerlendirmeyi bir NIL olmayan argüman bulur bulmaz durdurup T verecektir. LISP kodunun COND, AND, OR ve NOT gibi karmaşık yapılarını gerektiren parçaları en iyi daha küçük fonksiyonların grupları olarak yeniden yazılabilirler.

Micro Üzerinde LISP Sistemi LISP kullanarak bir dizi fonksiyon yazdığınızda, bir hata yapmanız elzemdir. En nihayetinde programcılığın keyifli yönlerinden biri de budur. LISP bir hatayla karşılaştığında şöyle şeyler olur. Ya yanıtlarınızdan hiçbir anlam çıkmayacak, (en kötü hata cinsi) ya da şanslıysanız bir hata mesajı ile birlikte kafa karıştırıcı bir dizi LISP ifadesi alacaksınız.

Bu ifade listesine “back trace” -geriye dönük tarama- denir ve debugging (hataları düzeltme) işleminde size yardımcı olması beklenmektedir, ama bazı LISP sistemleri listeyi hatanın ne olabileceği ve nerede olabileceği konusunda makul tahminler yapmakta kullanır. Bir hata mesajı aldıktan sonra yapılabilecek ilk şeylerden bir hatanın gerçekten bir hata mı yoksa beklenmeyen bir sonuç mu olduğuna bakmak; bir insan yanlış yorumlaması mı? Data yapı diyagramını kullanarak programın mantığını çıkarttıktan sonra, asıl iş başlar. LISP, bir hatayı bulabilmeyi, LISP fonksiyonlarına verilen tüm nicelikleri ve sonuçların dökümü alınabildiğinden ötürü verilen tüm değerleri inceleyebileceğiniz için, son derece kolaylaştırmıştır.

Bir fonksiyonun mantıksal tutarlılığını inceleyemeyeceğiniz tek zaman, fonksiyon giriş noktalarında ve bir döngü yapısından direkt olarak çıkmak gibi yeniden giriş yapılarında sorun çıktığı zamandır. (Yeniden giriş yapısına örnek olarak, bir FOR NEXT döngüsü içinde GOTO vermek sayılabilir.)

Bunların hiçbiri para etmediyse, denen fonksiyonu çağırmanın zamanı gelmiş demektir. Bu, karmaşık bir hesapta değerlerin fonksiyonlar arasında nasıl geçtiğini anlamak için kullanılabilir. Onu kullanmanın amacı yanlış sonuçlar veren tek bir fonksiyon saptamak olabilir. Eğer yanlış fonksiyon basit bir hataysa, hatayı düzeltmek kolay olacaktır. Save edin ve yeniden

Programı deneyin. Tüm bunlar da işe yaramazsa, programcıya kalan uzun bir gece boyunca masa başında ter dökmektir.

Klavyeyle gezinmek için ← ve → tuşları.