CS212
Exams
Spring 1998 - Prelim
2
Solution to OO Programming
(defstruct <entry>
(title <string>) (authors <list>) (year <number>))
(defstruct (<book> <entry>)
(isbn <number>) (publisher <string>))
(defstruct (<article> <entry>)
(month <number>) (publication-name <string>))
(defstruct (<magazine> <article>))
(defstruct (<journal> <article>)
(volume <number>))
-
(defgeneric (print-entry (entry <entry>)))
(defmethod (print-entry (entry <entry>))
(echo "Title: " (get-entry-title entry))
(echo "Authors: " (get-entry-authors entry))
(echo "Year: " (get-entry-year entry)))
(defmethod (print-entry (book <book>))
(call-next-method)
(echo "ISBN: " (get-book-isbn book))
(echo "Publisher: " (get-book-publisher book)))
(defmethod (print-entry (article <article>))
(call-next-method)
(echo "Month: " (get-article-month article))
(echo "Publication: " (get-article-publication-name article)))
(defmethod (print-entry (journal <journal>))
(call-next-method)
(echo "Volume: " (get-journal-volume journal)))
Question
Return to CS 212 Prelim 2 - Spring 1998