I tried to use errcatch in some Lisp code, but I couldn't get it to
work. So I tried translating a bit of code from Maxima to Lisp,
but the translated Lisp code didn't work as expected:
(C1) xsub(e,x) := block([ ], errcatch(substitute(0,x,e)));
(D1) xsub(e, x) := BLOCK([], ERRCATCH(SUBST(0, x, e)))
(C2) xsub(1/x,x);
Division by 0
(D2) []
/* xsub works as expected; let's translate xsub */
(C3) translate(xsub);
(D3) [xsub]
/* now, xsub gives an error message but doesn't return []. */
(C4) xsub(1/x,x);
Division by 0
-- an error. Quitting. To debug this try DEBUGMODE(TRUE);)
How can I use errcatch in a function similar to xsub in Lisp?
Barton