Anonymous user
Simple database: Difference between revisions
→{{header|Common Lisp}}: fix dump-db and remove unused functions
(→{{header|Common Lisp}}: fix dump-db and remove unused functions) |
|||
Line 37:
this code is also available under the GNU GPLv3.
<lang lisp>(
`((series . ,series) (episode . ,episode) (title . ,title) (date . ,date-watched)))
(defun print-episode (episode)
(format t " ~30a ~10a ~30a (~{~a~^.~})~%"
(cdr (assoc 'title episode)) (cdr (assoc 'date episode))))
(format t "~30a ~10a~%" (cdr (assoc 'series series)) (cdr (assoc 'status series)))
(mapcar #'print-episode (cdr (assoc 'episodes series))))
(defun dump-db (database)
(
(print-series (cdr series))))
▲(defun print-episode (episode)
▲ (format t "~30a ~10a ~30a (~{~a~^.~})~%" (cdr (assoc 'series episode)) (cdr (assoc 'episode episode)) (cdr (assoc 'title episode)) (cdr (assoc 'date episode))))
(defun get-latest (database)
Line 86 ⟶ 93:
(prompt-read "Episode")
(parse-date (prompt-read "Date watched"))))
(defun save-db (filename database)
Line 105 ⟶ 108:
(with-standard-io-syntax
(setf database (read in)))))
▲(defun has-series (name list)
(defun get-series (name list)
Line 115:
(cdr (assoc 'episodes (get-series series list))))
(defun watch-
(cdar (push `(,name (series . ,name) (status . ,status) (episodes)) db)))
Line 121:
(or (get-series name database)
(if (y-or-n-p "Add new series? [y/n]: ")
(watch-
(defun watch-add ()
|