Merhaba,
Emre Sevinc <[EMAIL PROTECTED]> şöyle yazmış:
"ZK" == Zekeriya KOÇ <[EMAIL PROTECTED]> writes:
ZK> Henüz bulmacanın çözümünün verildiği bölüme gelmedim ama daha
ZK> önceki okumamdan hatırladığım kadarıyla "MU" teorami "MIU"
ZK> dizgesi içinde ispatlanamaz (türetilemez) şeklinde bir sonuç
ZK> çıkıyordu.Zaten bunu yazmamdaki sebep sadece Lisp kodlamak
ZK> için küçük bir bahane teşkil etmesiydi benim için. "Maksat
ZK> ayağınız alışsın" (burada "eliniz") deyimindeki gibi.
Belki bundan sonraki adiminiz o kurallari kullanip olasi dizileri üreten
ve
sonuca varilip varilmadigini kontrol edebir döngü olmali. Sistemi
test etmek icin bir de bir teorem verirseniz, yani o sistem
icinde ispati mevcut olan bir sey, o zaman kuracaginiz döngünün
dogru calisip calismadigini da test etmeye baslayabilirsiniz.
Benim düşüncemde bu yönde fakat 3 numaralı kural ile ilgili bir sorunum
var.
""" k3 - 3. kural benim problemli kuralım. Buradaki amaç listenin herhangi
bir yerinde ardışık olarak 3 tane I varsa bunların yerine bir tane U
koymak. Ben 3 tane ardışık I yı bulan ve onları listeden çıkaran
fonksiyonu yazdım ama aynı pozisyona U harfini koyacak kodu çıkaramadım.
Bu ilk sorum aslında. """
(defun k3 (dizge)
(if (gecerli-p dizge)
(let ((sayac1 0)
(sayac2 0))
(dolist (i dizge dizge)
(setf sayac1 (1+ sayac1))
(if (equal i 'I)
(setf sayac2(1+ sayac2))
(setf sayac2 0))
(if (= sayac2 3)
(return (remove 'I dizge :start (- sayac1 3) :end sayac1)))))))
bu fonksiyon ardışık 3 tane I varsa tespit ediyor ve pozisyonuna göre
dizgeden çıkarıyor. Ama aynı pozisyona bir U ekleme konusunda takıldım.
Bu konuda listeden fikirler gelir mi acaba ?
Soru bir listeye isteğimiz pozisyona eleman ekleme işlemini nasıl
yapabiliriz ?
Teşekkürler.
P.S.: Toplantı yapılamadı mı acaba hiç ses çıkmıyo bu konuda ??
--
Zekeriya KOÇ
http://www.metkoi.com/zekus
_______________________________________________
cs-lisp mailing list
[email protected]
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp