>>>>> "ZK" == Zekeriya KOÇ <[EMAIL PROTECTED]> writes:

    ZK> bu fonksiyon ardışık 3 tane I varsa tespit ediyor ve
    ZK> pozisyonuna göre dizgeden çıkarıyor. Ama aynı pozisyona bir U
    ZK> ekleme konusunda takıldım.

    ZK> Bu konuda listeden fikirler gelir mi acaba ?

    ZK> Soru bir listeye isteğimiz pozisyona eleman ekleme işlemini
    ZK> nasıl yapabiliriz ?

Bir öneri. Liste yapisini bosverin. Karakter katari (string) veriyapisina
dönün. Sanki o bana daha müsait gibi geldi islemek icin.

Yani '(u i u i) yerine "uiui" filan demek gibi.

Böylece su tür seyler yapilabilir daha kompakt bir sekilde yapilabilir:
misal "iii" "uuiiiuu" dizisinin neresinde?

CL-USER> (search "iii" "uuiiiuu")
2

Hepsini bul ve degistir (devreye CL-PPCRE regex kitapligi girer [1]):

CL-USER> (cl-ppcre::regex-replace-all "iii" "uiiiuiiiuiii" "u")
"uuuuuu"

Böylece kod cok kisalir. Evet, cl-ppcre bagimliligi cikar, bu bir
dezavantaj ama isleri cok kolaystirir. Tabii yine liste yapisi
üzerinden yapmaya calismak Lisp'e dair daha cok sey ögrenmenizi
saglar o ayri, yani illa listede bir pozisyona bir eleman
eklemek demek, misal ben olsa bir döngü icinde listenin elemanlari
üzerinden döner, her elemani "collect" eder, ilgili pozisyona
geldigimde istedigim elemani koyar, bir atlar ve geriye kalan
elemanlarin üzerinden dönüp eklerdim, ortaya cikan yeni liste
istedigim pozisyona istedigim elemani eklemis oldugum liste
olurdu.

1- http://weitz.de/cl-ppcre/



-- 
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
cs-lisp@cs.bilgi.edu.tr
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp

Cevap