(%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.