ETYPECASE
authorDavid Vázquez <davazp@gmail.com>
Sun, 5 May 2013 15:23:17 +0000 (16:23 +0100)
committerDavid Vázquez <davazp@gmail.com>
Sun, 5 May 2013 15:23:17 +0000 (16:23 +0100)
src/boot.lisp

index ab043a9..ceaf956 100644 (file)
                                  (list nil)))))
                    clausules)))))
 
+(defmacro etypecase (x &rest clausules)
+  (let ((g!x (gensym)))
+    `(typecase ,g!x
+       ,@clausules
+       (t (error "~X fell through etypeacase expression." ,g!x)))))
+
 (defun notany (fn seq)
   (not (some fn seq)))
 
-
 (defconstant internal-time-units-per-second 1000) 
 
 (defun get-internal-real-time ()