Title: Lisp: programlanabilir programlama dili - List comprehensions

Geçen gün FZ'nin tersi ZF'yi Wikipedia’da 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

Cevap