On 7/29/08, Richard Fateman <fateman at cs.berkeley.edu> wrote:
> The issue here is that the properties of functions are generally stored on
> the property lists of the associated symbols. That is, the simplification
> for sin() is on the property list of the symbol $SIN, in the lisp system.
> similarly for declarations.
> Perhaps all function calls that attempt to get the simplification (or other)
> properties of operators can be made more elaborate, checking for
> symbol-ness, and otherwise checking somewhere else (probably
> a hash table of some sort.)
Yeah. I've thought about a hash table for properties to allow keys to
be something other than symbols, but I have to admit that just
using the symbol property list is very simple and very useful,
hard to beat that.
Maybe a compromise is to let subscript expressions inherit
properties from the unsubscripted symbol, e.g. x[1] inherits
from x. That's limited, but maybe useful, and it doesn't interfere
with the current symbols-only scheme. From what Stavros says
there is already a scheme like that to handle simplification of
subscripted functions.
Robert Dodier