MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Return in function

  • To: mathgroup at smc.vnet.net
  • Subject: [mg105636] Re: [mg105621] Return in function
  • From: DrMajorBob <btreat1 at austin.rr.com>
  • Date: Sat, 12 Dec 2009 06:57:17 -0500 (EST)
  • References: <200912111146.GAA12933@smc.vnet.net>
  • Reply-to: drmajorbob at yahoo.com

Return doesn't work as documented, but that's not the best reason to never  
use it.

Your three examples should have been written as

If[# == 2, a, #] & /@ {1, 2, 3}

{1, a, 3}

Function[x, If[x == 2, a, x]] /@ {1, 2, 3}

{1, a, 3}

f[x_] := If[x == 2, a, x]
f /@ {1, 2, 3}

{1, a, 3}

Tortured constructions give unpredictable results, as a matter of simple  
justice.

Bobby

On Fri, 11 Dec 2009 05:46:49 -0600, dh <dh at metrohm.com> wrote:

>
>
> Version 7.0.1
>
> Hello,
>
> I am not sure if this is a feature or a bug. If you use Return in an
>
> anonymous function, not only the return value is returned, but also
>
> "Return" itself. Consider:
>
>
>
> (If[# == 2, Return[a]; #, #]) & /@ {1, 2, 3}
>
> this gives:
>
> {1, Return[a], 3}
>
>
>
> The same thing happens with:
>
> Function[x, If[x == 2, Return[a]; x, x]] /@ {1, 2, 3}
>
>
>
> However, the following works as expected:
>
> f[x_] := (If[x == 2, Return[a]; x, x]);
>
> f /@ {1, 2, 3}
>
>
>
> Daniel
>
>
>


-- 
DrMajorBob at yahoo.com


  • Prev by Date: Re: Notebook
  • Next by Date: Re: Re: Play Command Error
  • Previous by thread: Return in function
  • Next by thread: Re: Return in function