Dieter Kaiser wrote:
> Am Montag, den 08.06.2009, 03:59 +0200 schrieb Harald Geyer:
>
>> Well, you might introduce a new object without having all
>> simplifications in place and it would still be better then returning
>> an empty list.
>>
>
> OK, the starting point was that we have no convention for a "NO RESULT"
> or "NO SOLUTION" like a divergent integral.
>
> What's about to return an expression like:
>
> (list '($NOOBJECT) (gensym))
>
> This would give:
>
> (%i24) integrate(x,x,0,inf);
> defint: The integral is divergent.
> (%o24) noobject(?g24049)
>
I think it's pretty bad to expose gensyms to the user.
> When two integrals are involved in an expressions we get:
>
> (%i25) a*integrate(x,x,0,inf)/integrate(x^2,x,0,inf)^b;
> defint: The integral is divergent.
> defint: The integral is divergent.
> (%o25) a*noobject(?g24196)/noobject(?g24343)^b
>
I haven't been following this discussion too closely, but how is
noobject(gensym) any better than just signaling an error? How does %o25
help the user in any way? Can you do anything useful with such a
result? Can you tell how noobject(?g24196) came about? (Well, in a
non-trivial example. This example is pretty clear where each noobject
came from.)
Back when I used to run Fortran simulations, I sometimes would get cool
results like NaN for all of my expected output. It's nice that it
didn't crash, but getting NaN for an answer was pretty useless to me.
What I really wanted was the program to die when a NaN was generated so
I could figure out what was causing the NaN. Wouldn't maxima now have
the same problem?
Perhaps the answer is in the parts of the thread that I didn't read. My
apologies if so.
Ray