Subject: Re: How can i make "case" to use equal? From: Erik Naggum <erik@naggum.net> Date: Thu, 06 Sep 2001 18:32:43 GMT Newsgroups: comp.lang.lisp Message-ID: <3208789962759722@naggum.net> * Sam Steingold <sds@gnu.org> > (defun case-expand (form-name test keyform clauses) > ...) > > (defmacro fcase (test keyform &body clauses) > (case-expand 'fcase test keyform clauses)) Neat, but one of the really good things about case and the like is that they can be optimized into jump tables and the like since the keys are all constants at compile-time. Expanding into cond is not a good idea if you want to keep this. In fact, using a hash table for the keys allows you to convert the keys into small integers. ///