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.
///