Is this gross?

From: Peter Seibel (peter_at_javamonkey.com)
Date: 08/27/04


Date: Fri, 27 Aug 2004 20:19:45 GMT

Or an appropriate use of read-time evaluation?

  (defun frame-name (id)
    (gethash
     id
     #.(let ((hash (make-hash-table :test #'equal)))
         (loop for (ids . name) in
               '((("COM" "COMM") . "Comment")
                 (("TAL" "TALB") . "Album")
                 (("TCM" "TCOM") . "Composer")
                 (("TCO" "TCON") . "Genre")
                 (("TEN" "TENC") . "Encoding program")
                 (("TP1" "TPE1") . "Artist")
                 (("TPA" "TPOS") . "Part of set")
                 (("TRK" "TRCK") . "Track")
                 (("TT2" "TIT2") . "Song")
                 (("TYE" "TYER" "TDRC") . "Year"))
               do (dolist (id ids) (setf (gethash id hash) name)))
         hash)
     id))

-Peter

-- 
Peter Seibel                                      peter@javamonkey.com
         Lisp is the red pill. -- John Fraser, comp.lang.lisp


Relevant Pages