Re: Handling branch cuts for hypergeometric function s
Subject: Re: Handling branch cuts for hypergeometric function s
From: Viktor T. Toth
Date: Mon, 14 Feb 2005 14:20:26 -0500
> Sorry, I'm at work, and not at home, and I didn't see it on the
> mailing list, so I assumed you wanted to keep it private.
I made the same assumption when I wrote it, since it was in response to a
message from you that was sent only to me, not the list.
> But Lisp is both an interactive system and a programming language.
> This distinction isn't made, and I think it works well
But Maxima isn't LISP. Its syntax is much more that of a procedural
language, and what works in LISP may not work in Maxima.
>From a programming perspective, I don't see it working "well" at all when a
supposedly non-interactive program hangs because Maxima stupidly waits for a
non-existent user to tell it if X is positive or negative. IMO, it is at
least as annoying (if not more so) than your example of having to reenter a
calculation because it failed for lack of an ASSUME().
> If I make an error at the prompt, I want my program that makes
> the same error to behave the same way.
But in many cases, what happens is not predictable. Whoever writes the
program may have no way of knowing what data is thrown at it. The data a
function processes may contain references to expressions that trigger the
"interactive query" behavior in a totally inappropriate context, when it'd
be much preferable, for instance, for the function to just return an error
code.
> And I don't see how more global flags really solves anything. It's
> just more global flags, which maxima already has a lot of. :-(
I share your dislike of global flags, but if we want to have it both ways,
flags may be unavoidable. I really, really believe that at the very least,
there should be some global mechanism to turn off interactive queries.
But hey, I have a proposal: let's get rid of both global flags AND
interactive queries!
Viktor