From 5faa1b4c9d94e2b970d45fc855ef9442954bd7e5 Mon Sep 17 00:00:00 2001 From: mRnea Date: Tue, 4 Mar 2025 21:36:34 +0300 Subject: =?UTF-8?q?minik=20refactor=20ve=20rastgele=20s=C4=B1rayla=20t?= =?UTF-8?q?=C3=BCm=20kelimeleri=20sorma?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- okur.lisp | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'okur.lisp') diff --git a/okur.lisp b/okur.lisp index 3a76f05..94d72c4 100644 --- a/okur.lisp +++ b/okur.lisp @@ -96,8 +96,8 @@ (boşluk-geç okur) (anlam-oku okur))))) -(defmethod kelime-oku ((okur okur)) - (let (kanji kana anlam grup altgrup) +(defmethod kelime-oku ((okur okur) sıra) + (let (kanji kana anlam tür alttür) (setf kanji (kanji-oku okur)) (boşluk-geç okur) (setf kana (kana-oku okur)) @@ -107,28 +107,30 @@ ;; (yeni-satıra-geç okur) (kar-oku okur) (boşluk-geç okur) - (setf grup (sonraki-öbek okur '(#\Newline #\Space #\; #\,))) - (cond ((or (string= grup "fiil") - (string= grup "sıfat")) + (setf tür (sonraki-öbek okur '(#\Newline #\Space #\; #\,))) + (cond ((or (string= tür "fiil") + (string= tür "sıfat")) (boşluk-geç okur) - (setf altgrup (sonraki-öbek okur '(#\Newline #\Space #\;)))) + (setf alttür (sonraki-öbek okur '(#\Newline #\Space #\;)))) ((char= #\, (kar-bak okur)) (kar-oku okur) (boşluk-geç okur) - (push (sonraki-öbek okur '(#\Newline #\Space #\;)) grup)))) + (setf tür (list tür (sonraki-öbek okur '(#\Newline #\Space #\;))))))) (make-instance 'kelime :kanji kanji :kana kana :anlam anlam - :grup grup :altgrup altgrup))) + :tür tür :alttür alttür :sıra sıra))) (defmethod işle ((okur okur)) (unless (eq :baş (durum okur)) (error "Okur zaten işlenmiş")) - (loop :until (metin-bitti? okur) + (loop :with sıra := 0 + :until (metin-bitti? okur) :do (case (kar-bak okur) (#\; (yeni-satıra-geç okur)) (#\Newline (yeni-satıra-geç okur)) (#\Space (boşluk-geç okur)) - (otherwise (vector-push-extend (kelime-oku okur) - (kelimeler okur))))) + (otherwise (vector-push-extend (kelime-oku okur sıra) + (kelimeler okur)) + (incf sıra)))) (kelimeler okur)) (defmacro okurla ((isim dosya-ismi) &body beden) -- cgit v1.2.3