Geçen gün FZ'nin tersi ZF'yi Wikipediada aratınca bu sayfa ile karsilastim,
Zermelo-Fraenkel aksiyomatik sistemi, ITU yillarım, cümleler teorisi,
nostalji filan deyip dolanmaya devam ederken karsima "List comprehensions" cikti.
"A-aa ne güzel, yillardır alisik olduğumuz matematiksel notasyona ne kadar benziyor,
hmm, Haskell tarzi, acaba Lisp olarak da var mı?" diye HB ile laklak ederken bir de
baktik 15 sene önce Guy Lapalme gitmis "Implementation of a Lisp comprehension macro"
baslikli eglenceli bir makale yazmis. Tabii denememek olmazdi,
hemen bir .lisp dosyasi acildi, SLIME bufferına gecildi, kod yazilip derlendi. Sonucta ne oldu?
CL-USER> [x (x <- '(1 2 3)) (oddp x)]
(1 3)
CL-USER> [(list x y) (x < - '(a b c)) (y <- '(1 2 3))]
((A 1) (A 2) (A 3) (B 1) (B 2) (B 3) (C 1) (C 2) (C 3))
CL-USER>
tarzinda seyler yazmak mümkün oldu. Lapalme'in makalesinde QuickSort'un bu
notasyonla yazilmis ornek Common Lisp kodu da mevcut. Bir kez daha Lisp'e
neden "programlanabilir programlama dili" dendigini anlamis oldum!
Detaylar ve linkler icin:
http://ileriseviye.org/blog/?p=463
Iyi eglenceler,
Emre S.
_______________________________________________ cs-lisp mailing list cs-lisp@cs.bilgi.edu.tr http://church.cs.bilgi.edu.tr/lcg http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp