constantp and featurep



On 5/2/09, Barton Willis <willisb at unk.edu> wrote:

> Yes, this can be done by adding one line of code to featurep. But I'm not
> sure it is a good thing to do. Having distinct ways of doing the same
> thing causes chaos---somebody appends a bit of code to featurep but
> not constantp; users don't know which to use; and ...
>
> I think featurep was intended to be a function that simply checked the
> fact database. Now, I'm not sure there is a way for a user to just as
> if a fact is in the fact database.  And that's not good.

Maxima is somewhat messy with assertions  --- in particular
different assertions are handled in different ways.
I looked at this problem this afternoon and I think the right way to
handle declare(foo, constant) is to cut out the special case stuff
and handle it via the Lisp functions KIND and KINDP.

Just reworking the constant stuff is not much work, but there are
others --- scalar, nonscalar, a few more (can't remember now),
which could also be reworked. I can work on constant in short
order, dunno if I'll get to the others in a timely fashion.

FWIW

Robert Dodier