Simple database: Difference between revisions

Content added Content deleted
(→‎{{header|Common Lisp}}: (some) does all that's needed to compare lists of on type)
(→‎{{header|Common Lisp}}: some more little improvements from #lisp)
Line 59: Line 59:


(defun get-latest (database)
(defun get-latest (database)
(cond ((endp database) nil)
(when database
(T (cons (cadr (assoc 'episodes (cdar database))) (get-latest (cdr database))))))
(cons (car (get-value 'episodes (cdar database))) (get-latest (cdr database)))))


(defun get-all (database)
(defun get-all (database)
(cond ((endp database) nil)
(when database
(T (append (get-value 'episodes (cdar database)) (get-all (cdr database))))))
(append (get-value 'episodes (cdar database)) (get-all (cdr database)))))


(defun compare-by-date (a b)
(defun compare-by-date (a b)
Line 177: Line 177:
(sort (mapcar #'car *db*)
(sort (mapcar #'car *db*)
#'(lambda (series1 series2)
#'(lambda (series1 series2)
(compare-by-date (cadr (assoc 'episodes (get-value series1 *db*)))
(compare-by-date (car (get-value 'episodes (get-value series1 *db*)))
(cadr (assoc 'episodes (get-value series2 *db*))))))))
(car (get-value 'episodes (get-value series2 *db*))))))))


(defun watch-load (dbfile)
(defun watch-load (dbfile)