antid



I just had occasion to look at the code for antid, which includes the 
locution (simplified, here)

 antid(..) := block( [ ..., killer, ...],
    ...
    killer(z) :=  ....,
   ....)

Presumably the author thought he (or she) was defining a local function 
named killer. In fact, killer is just as global as any other function.  
It is defined the first time antid is called. And it is defined again 
each time antid is called.

Probably the author should use "local".

I would have preferred to send this note to the author but the author 
did not sign the file :(

It would be nice if the author of this  (as well as other contributions) 
were identified in the text. Also in this case it would be nice to 
explain somewhere why this program exists.  I think it is because it can 
find the antiderivative  (i.e. symbolic indefinite integral) of some 
expressions that are not currently handled by the built-in integrate 
command.  I recommend that the manual and the demo provide such an 
explanation.

RJf