Peki oyleyse, iyi ki sormusum :). Biraz daha teknik
gevezelik yapalim. Bu arada "bu incir cekirdegini
doldurmayacak mesele hkkinda yazacak ne olabilir ki!"
diyenleri duyar gibi oluyorum. Ama ben yine de
yazacagim ;).

Asinda biraz dusunmekte fayda var: simdi neden insan t
gibi bir degeri (case ...) icin anahtar kelime yapar?

Burada dilin konvansiyonel yonu ortaya cikiyor. (cond
...) icin kolay: orada t anahtar sozcuk degil. Ama
(case ...)'de anahtar sozcuk yapmak zorundasiniz bir
seyi (ya da dilde her karsilastirmada NIL sonucu veren
bir element bulunmasi lazim). Baska ilginc bir ayrinti
su: NIL'de durum nedir? Simdi orada bir belirsizlik
olusacaktir: NIL'in bir anlami da empty list. Yani
eger case'i implement ederken once (listp ..)
kontrolunu yaparsaniz cevap evet oluyor. Ardindan
acaba elimdeki deger bu listede var mi diye kontrol
ederseniz cevap hayir oluyor! Peki ya elinizdeki deger
(yani case expr (...)*)'deki expr) kendisi NIL ise?
[Cevap: (NIL) diye NIL'i liste icine koyuyoruz]. Ama
aslinda t icin, anahtar sozcuk olmasaydi, ayni
belirsizlik yok. 

Paul Graham'in On Lisp kitabinda belirsizlikten
bahsediliyordu: ama neden belirsizlik oldugunu
soylemiyordu. NIL icin sebebin yukaridaki gibi
oldugunu dusundum. Ama o zaman T konusundaki
belirsizligin nedeni konusunda suphelendim. Sonucta
bunun konvansiyona ve geriye uyumluluk gibi
gerekcelere dayanmasi gerekir diye arastirmaya
basladim.

Hikaye boyle, gerisini gecen emailden biliyorsunuz... 

Ama simdi bir adim daha atip soyle diyorum kendime:
Ama neden boyle bir konvansiyon var? Bunun altinda
yatan psikolojik/linguistik gerekce nedir? Kendimce
bazi kanilara vardim, ama biraz olgunlastirmam ve
zamanin testine birakmam lazim bu dusuncelerimi :).
Ama gercekten burada yazilmamis ve soylenmemis bir
insan egilimi var saniyorum, isin basinda benim (cond
...) ile baglanti kurmamin altinda da suursuz olarak
bu var belki. (Ipucu: Dikkat ederseniz dogal dillerde
de bir "galat-i meshur" kavrami vardir.) 
Saygilar,

Nusret







--- Emre Sevinc <[EMAIL PROTECTED]> wrote:

> >>>>> "n" == nusret  <[EMAIL PROTECTED]> writes:
> 
>     n> Kusura bakmayin lutfen: Evet ben birsey
> kacirmisim.
>     n> Hyperspec'e yeniden bakinca "case" maddesi
> altinda su satiri
>     n> farkettim:
> 
>     n> otherwise-clause::= ({otherwise | t} form*)
> ^^ Bir dahaki
>     n> sefere daha dikkatli olmaya calisirim, ama
> garanti veremem (ben
>     n> biraz dalgin biriyim :)).
> 
>     n> Basinizi agrittigim icin ozur dilerim. 
> Saygilar,
> 
> 
> L�tfen b�yle yazip zaten cekingen olan bir kisim
> �yeyi daha
> da cekingen kilmayin :) (Bu arada �ye sayimiz 70
> kisiye
> yaklasti!)
> 
> Ben kendi adima bu e-postalardan gayet memnunum.
> Neden? C�nk�
> Common Lisp gercekten b�y�k, genis ve derin bir
dil.
> En basit
> kodda bile, s�yle bir g�zatista bile, derinde
bir
> seyler yatiyor
> olabiliyor ve bir baskasinin d�s�nce
s�recleri, bir
> yerde
> kafasinin karisip sonra bir seyleri anlayip
> anlatmasi diger
> yeni �grenenler icin de faydali olabiliyor. 
> 
> (Gecen g�nk� setf, defsetf, vb. mevzularda
oldugu
> gibi).
> 
> Yani misal 25 yildir Common Lisp kullanan biri icin
> bazi
> seyler asikar olabiliyor (yillarini matematige
> vermis bir profes�r�n
> temel topoloji kavramlarini, misal bir k�menin ne
> acik ne kapali
> olmasi durumunu gayet "asikar" sekilde g�rebilmesi
> gibi) ama yeni
> ugrasan insanlar icin bu hic de �yle olmayabilir.
> Konu yeni 
> ilgilenen digerleri d�s�nce s�reclerini,
> takildiklari yerleri,
> sorularini, �rnek kodlarini filan paylasirlarsa ve
> bunun �zerinde
> biraz teknik gevezelik edilirse bu d�md�z kitap
> okumaktan, ya
> da kod okuyup yorumlarini okumaktan bazi durumlarda
> cok
> daha faydali olabiliyor (kitaplardan ve kaynak kod
> okumaktan
> yararlanmak da cok �nemli, aksini iddia
ediyormusum
> gibi bir
> yanlis anlama olmasin l�tfen).
> 
> 
> -- 
> Emre Sevinc
> 
> eMBA Software Developer         Actively engaged in:
> http://emba.bilgi.edu.tr          
> http://ileriseviye.org
> http://www.bilgi.edu.tr        
> http://fazlamesai.net
> Cognitive Science Student       http://cazci.com
> http://www.cogsci.boun.edu.tr
> 
> 
> _______________________________________________
> cs-lisp mailing list
> [email protected]
> http://church.cs.bilgi.edu.tr/lcg
> http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

_______________________________________________
cs-lisp mailing list
[email protected]
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp

Cevap