Re: NMinimize problem: fct minimized uses FindRoot
- To: mathgroup at smc.vnet.net
- Subject: [mg123668] Re: NMinimize problem: fct minimized uses FindRoot
- From: Oliver Ruebenkoenig <ruebenko at wolfram.com>
- Date: Thu, 15 Dec 2011 04:53:15 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201112141101.GAA10168@smc.vnet.net>
On Wed, 14 Dec 2011, Oleksandr Rasputinov wrote:
> On Tue, 13 Dec 2011 10:54:13 -0000, Oliver Ruebenkoenig
> <ruebenko at wolfram.com> wrote:
>
>>
>> On Mon, 12 Dec 2011, Oleksandr Rasputinov wrote:
>>
>>> For example, the erroneous usage:
>>>
>>> Block[{a = 1, b = 2}, Return[a]; Return[b]]
>>
>> You can "fix" this by using
>>
>> Block[{a = 1, b = 2}, Return[a, Block]; Return[b]]
>>
>> but Throw/Catch is probably a better bet.
>>
>> Oliver
>>
>
> Interesting; this two-argument form of Return seems like it could be quite
> useful. However, as far as I can see, this possibility has never been
> listed on the main page for Return, nor on those for Break or Continue
> (with which a second argument can also be used), even though it has been
> allowed since version 4 at the latest. The only documentation that I could
> find suggesting that it exists at all is for the message (Return::nofunc)
> that one sees after using it incorrectly. Is this likely to change in
> future, or has it been left deliberately undocumented to discourage its
> use?
>
>
I am not exactly sure, but I think Return has been left as it is since a
change might break too much legacy code. As for why the two argument
Return is not a full-fledged citizen I don't know.
As has been suggested on this thread throw/catch is a better and some say
more modern approach to this.
- References:
- Re: NMinimize problem: fct minimized uses FindRoot
- From: "Oleksandr Rasputinov" <oleksandr_rasputinov@hmamail.com>
- Re: NMinimize problem: fct minimized uses FindRoot