dummy argument to return



Another example of usage of $unwind_protect could be to close a stream if an error occurs 
while working with it.

You should commit this useful function. I would not consider another name cause at first 
sight it does nothing different than unwind-protect but only on Maxima level. So why 
creating another name for the same thing?

But I think this is another thread. Originally it starts with my attempt to simplify the return 
function. I wouldn't like to mix this. According to Robert I would like to see a simple 
definition for return:

return() ==> false
return(expr) ==> expr
return(1,2,3) ==> Maxima error

expr can be an assignment, a list or an unwind_protect or whatever.

Volker van Nek


Am 10 Nov 2007 um 19:45 hat Barton Willis geschrieben:

> Here is a unwind_protect function:
> 
> (defmspec $unwind_protect (e)
>   (setq e (margs e))
>   (unwind-protect (meval (first e)) (mapcar #'meval (rest e))))
> 
> And a function that determines the sign of an expression in
> its own local context:
> 
> (%i2) my_sign(e, [f]) := block([prederror : false, my_context],
>        unwind_protect((
>          newcontext (my_context),
>            for fi in f do assume(fi),
>          sign(e)),
>          killcontext(my_context)))$
> 
> (%i3) my_sign(x, x > y, y > 1);
> (%o3) pos
> 
> (%i4) my_sign(%i);
> `sign' called on an imaginary argument:
> 
> After the error, 'my_context' still gets killed
> 
> (%i5) contexts;
> (%o5) [initial,global]
> 
> I proposed the function unwind_protect sometime ago. Some thought
> that 'unwind_protect' was an overly geeky function name, even by
> Maxima standards :) I didn't think of a better name.
> 
> 
> 
> BW
> 
> -----maxima-bounces at math.utexas.edu wrote: -----
> 
> >To: Barton Willis <willisb at unk.edu>
> >From: "van Nek" <van.nek at arcor.de>
> >Sent by: maxima-bounces at math.utexas.edu
> >Date: 11/10/2007 01:26PM
> >cc: Maxima at math.utexas.edu
> >Subject: Re: [Maxima] dummy argument to return
> >
> >Am 10 Nov 2007 um 12:22 hat Barton Willis geschrieben:
> >
> >> OK, another idea: make return act like unwind-protect. Then it would
> >> (1) evaluate and return the first and (2) evaluate the remaining even
> >> if evaluating the first signals an error.
> >
> >Barton,
> >do you have an example in mind which shows the benefit of this behaviour?
> >
> >Volker
> >_______________________________________________
> >Maxima mailing list
> >Maxima at math.utexas.edu
> >http://www.math.utexas.edu/mailman/listinfo/maxima
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima