Rupert,
Thanks for the party spoiling tip.
Asksign appends an association list element to *LOCAL-SIGNS*. When askequal(a,b) is true, the best I can think of is to
append (a-b).$zero to *LOCAL-SIGNS*. For extended reals or lists, or ...., that's terrible. When askequal(a,b)
is false, maybe appending (a-b).$pn, would work, but I'm not counting on that.
--Barton
________________________________________
From: maxima-bounces at math.utexas.edu [maxima-bounces at math.utexas.edu] on behalf of Rupert Swarbrick [rswarbrick at gmail.com]
Sent: Wednesday, May 22, 2013 08:12
To: maxima at math.utexas.edu
Subject: Re: [Maxima] Regression in integration
Barton Willis <willisb at unk.edu> writes:
> For askequal, here is a hastily written function
>
> (defun $askequal (a b)
> (let ((answer (meqp a b)))
> (setq answer
> (cond ((eq answer t) '$yes)
> ((eq answer nil) '$no)
> (t
> (retrieve `((mtext) "Is " ,a "equal to " ,b "?") nil))))
>
> (cond ((eq answer '$no)
> (assume (take '($notequal) a b))
> answer)
> ((eq answer '$yes)
> (assume (take '($equal) a b))
> answer)
> (t
> (mtell "Please answer either yes or no.")
> ($askequal a b)))))
Just because this is still in my head: This behaves rather differently
>From $asksign, since it doesn't remember what it's been told. I guess
you also want a call to tdzero or tdpn with the difference between the
two terms?
Rupert