Skip to content
Snippets Groups Projects
Commit cef58865 authored by Peter Vennemann's avatar Peter Vennemann
Browse files

Sorting saved buffer.

parent daabc94b
No related branches found
No related tags found
No related merge requests found
...@@ -2,13 +2,17 @@ ...@@ -2,13 +2,17 @@
;; class for single phrase ;; class for single phrase
(defclass vocab-entry () (defclass vocab-entry ()
((native :initarg :native :initform "" :type string :documentation "phrase in native lang") ((native :initarg :native :initform "" :type string
(foreign :initarg :foreign :initform "" :type string :documentation "phrase in foreign lang") :documentation "phrase in native lang")
(score :initarg :score :initform 0 :type integer :documentation "score"))) (foreign :initarg :foreign :initform "" :type string
:documentation "phrase in foreign lang")
(score :initarg :score :initform 0 :type integer
:documentation "score")))
;; class for trainer ;; class for trainer
(defclass vocab-trainer () (defclass vocab-trainer ()
((entries :initarg :entries :initform nil :type list :documentation "list of phrases"))) ((entries :initarg :entries :initform nil :type list
:documentation "list of phrases")))
(defmethod load-vocab ((trainer vocab-trainer)) (defmethod load-vocab ((trainer vocab-trainer))
"Reading phrases from current buffer and saving as objecst." "Reading phrases from current buffer and saving as objecst."
...@@ -21,24 +25,28 @@ ...@@ -21,24 +25,28 @@
(native (nth 0 parts)) (native (nth 0 parts))
(foreign (nth 1 parts)) (foreign (nth 1 parts))
(score (string-to-number (nth 2 parts)))) (score (string-to-number (nth 2 parts))))
(push (vocab-entry :native native :foreign foreign :score score) (oref trainer entries))) (push (vocab-entry :native native :foreign foreign :score score)
(oref trainer entries)))
(forward-line 1)))) (forward-line 1))))
(defmethod save-vocab ((trainer vocab-trainer)) (defmethod save-vocab ((trainer vocab-trainer))
"Saving phrases with actual scores back to current buffer." "Saving phrases with actual scores back to current buffer."
(with-current-buffer (current-buffer) (with-current-buffer (current-buffer)
(erase-buffer) (erase-buffer)
(dolist (entry (oref trainer entries)) (let ((sorted_entries (cl-sort (copy-sequence (oref trainer entries)) '<
(insert (format "%s | %s | %d\n" :key (lambda (e) (oref e score)))))
(oref entry native) (dolist (entry sorted_entries)
(oref entry foreign) (insert (format "%s | %s | %d\n"
(oref entry score)))) (oref entry native)
(oref entry foreign)
(oref entry score)))))
(save-buffer))) (save-buffer)))
(defmethod select-weakest ((trainer vocab-trainer)) (defmethod select-weakest ((trainer vocab-trainer))
"Selecting phrases with lowest score." "Selecting phrases with lowest score."
(cl-subseq (cl-sort (copy-sequence (oref trainer entries)) #'< :key (lambda (e) (oref e score))) (cl-subseq (cl-sort (copy-sequence (oref trainer entries)) '<
0 12)) :key (lambda (e) (oref e score)))
0 12))
(defmethod train ((trainer vocab-trainer)) (defmethod train ((trainer vocab-trainer))
"Start training." "Start training."
...@@ -53,7 +61,8 @@ ...@@ -53,7 +61,8 @@
(oset entry score (1+ (oref entry score))) (oset entry score (1+ (oref entry score)))
(setq words (cdr words))) (setq words (cdr words)))
(progn (progn
(message "Wrong! Correct answer: %s (press key...)" (oref entry foreign)) (message "Wrong! Correct answer: %s (press key...)"
(oref entry foreign))
(read-char) (read-char)
(oset entry score (1- (oref entry score)))))))) (oset entry score (1- (oref entry score))))))))
(save-vocab trainer)) (save-vocab trainer))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment