declarations



(%i4) declare(FOO,feature)
(%o4) done
(%i5)
myfn():=block([BAR],declare(BAR,FOO),print(featurep(BAR,FOO)),BAR:"2",
            print(featurep(BAR,FOO)),declare(BAR,FOO),
            print(featurep(BAR,FOO),featurep(BAR,string)),done)
(%i6) myfn()
true
false
false false
(%o6) done


As you can see, I declare BAR to be a FOO, and maxima knows this. When I
assign a value to BAR, maxima forgets my previous declaration and even
if I repeat this declaration, maxima ignores it.

(Note, too, that featurep is unable to determine that BAR is also a
string).

Can someone explain this behaviour?

Leo

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.