Anonymous user
Simple database: Difference between revisions
→{{header|Common Lisp}}: add support for tags
(→{{header|Common Lisp}}: improve handling of series title) |
(→{{header|Common Lisp}}: add support for tags) |
||
Line 38:
<lang lisp>(defvar db nil)
(defun make-episode (&key series title episode date tags)
`((series . ,series) (episode . ,episode) (title . ,title) (date . ,date) (tags . ,tags)))
(defun print-episode (episode)
(format t " ~30a ~10a ~
(cdr (assoc 'series episode)) (cdr (assoc 'episode episode))
(cdr (assoc 'title episode)) (cdr (assoc 'date episode)) (cdr (assoc 'tags episode))))
(defun print-episodes (episodes series)
Line 79:
(defun parse-date (date)
(mapcar #'parse-integer (split "." date)))
(defun parse-tags (tags)
(mapcar #'intern (split " " (string-upcase tags))))
(defun prompt-for-episode (&optional last)
Line 85 ⟶ 88:
:title (prompt-read "Title")
:episode (prompt-read "Episode")
:date (parse-date (prompt-read "Date watched"
:tags (parse-tags (prompt-read "Tags"))))
(defun save-db (filename database)
|