Anonymous user
Simple database: Difference between revisions
→{{header|Common Lisp}}: only handle numeric dates as per recommendation from #lisp
(→{{header|Common Lisp}}: improve file handling) |
(→{{header|Common Lisp}}: only handle numeric dates as per recommendation from #lisp) |
||
Line 45:
(defun print-episode (episode)
(format t " ~30a ~@[~a-~]~a~40T~@[~a~]~@[ ~70T(~{~a~^.~})~]~@[ (~{~a~^ ~})~]~%"
(get-value 'series episode)
(get-value 'season episode)
(get-value 'episode episode)
(get-value 'title episode)
(reverse (get-value 'date episode)
(get-value 'tags episode)))
Line 65:
(cond ((endp database) nil)
(T (append (get-value 'episodes (cdar database)) (get-all (cdr database))))))
(defun compare-date (a b)
(cond ((not
(
((
(compare-date (rest a) (rest b)))
(t (<
(defun compare-by-date (a b)
(compare-date
(defun prompt-read (prompt &optional default)
Line 105 ⟶ 98:
(defun parse-date (date)
(reverse (mapcar #'parse-integer (split "." date))))
(defun parse-tags (tags)
Line 182 ⟶ 175:
(defun watch-add ()
(let* ((series (loop thereis (get-or-add-series (prompt-read "Series") *db*)))
(episodes (get-value 'episodes series))
(episode (prompt-for-episode (car episodes))))
|