Hello Stavros,
> Moreover, even if you make coord_mat local to the block,
> that won't change anything, because Maxima treats it as a function,
> and functions cannot be bound locally.
Well, a function can't have lexical scope, for sure,
but it can have dynamic scope, right?
foo (x) := x + 1000;
foo (8); => 1008
block (local (foo), foo (x) := x * 1000, foo (8)); => 8000
foo (8); => 1008
bar(x) := foo(x) - 100;
bar (8); => 908
block (local (foo), foo (x) := x * 1000, bar (8)); => 7900
bar (8); => 908
local saves/restores the property list, which includes the
function definition here. That is a little heavy-handed --
we really only want to save/restore the function definition. Oh well.
For what it's worth,
Robert