Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

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

Search the Archive

Re: Why Return[] does not work?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg109509] Re: Why Return[] does not work?
  • From: David Bailey <dave at removedbailey.co.uk>
  • Date: Sun, 2 May 2010 05:36:18 -0400 (EDT)
  • References: <hr6ihp$2f8$1@smc.vnet.net> <hr6la2$5im$1@smc.vnet.net> <201004280558.BAA05169@smc.vnet.net> <hre94j$8s$1@smc.vnet.net>

Andrzej Kozlowski wrote:
> I am not sure if anyone pointed out that if enough Returns are used the original code will work as expected:
> 
> Intersects[x_List, y_List] := (Do[(Print["Outer step ", xi];
>     Do[(Print[xi, yi];
>       If[xi == yi, (Print["Returning True"];
>         Return[Return[Return[True]]])]), {yi, y}]), {xi, x}]; False)
> 
> In[2]:= Intersects[{a,b},{c,a}]
> During evaluation of In[2]:= Outer step a
> During evaluation of In[2]:= ac
> During evaluation of In[2]:= aa
> During evaluation of In[2]:= Returning True
> Out[2]= True
> 
> On 28 Apr 2010, at 14:58, Dims wrote:
> 
>> On 27 =D0=B0=D0=BF=D1=80, 16:28, Albert Retey <a... at gmx-topmail.de> wrote:
>>> Am 27.04.2010 13:41, schrieb Dims:
>>> Intersects[x_List, y_List] := Catch[
>> Yes, thank you, I also came to conclusion, that catch works. But I
>> think it is a bug with return, since manual says, that we CAN use
>> Return[] inside Do[].
>>
> 
> 
With Mathematica you always live and learn - I had never realised that 
would work - thanks!

I do use Return sometimes, but if I need a loop, I normally use a While 
loop - which don't seem to be noticed by Return. Unlike some others, I 
think Return has its place, although I do wish its semantics were a 
little clearer.

If you want a function to perform a few tests on its arguments to decide 
if its arguments are appropriate, I think it is much clearer to use 
If[xxx,Return[]]; rather than embed the rest of the function body inside 
the If.

I also think Return is useful when making temporary alterations to some 
code - say adding a Return[] somewhere just to disable some code.

David Bailey
http://www.dbaileyconsultancy.co.uk


  • Prev by Date: Re: Why Return[] does not work?
  • Next by Date: Re: Sphere formula
  • Previous by thread: Re: Why Return[] does not work?
  • Next by thread: Re: How to disable Integrate[] ?