Re: FindRoot
- To: mathgroup at smc.vnet.net
- Subject: [mg131641] Re: FindRoot
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Sun, 15 Sep 2013 07:06:46 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
On 9/14/13 at 6:03 AM, bruce.colletti at gmail.com wrote:
>Re 9.0.1 under Windows 7.
>The code below is extracted from another source.
>Part I below returns 289 even though n is never given a value. Why
>does the module return a value and in particular, what does 289
>mean?
>Part II doesn't return a value (as expected). I don't see why Part
>I returns a value but not Part II.
Module has the following structure
Module[localVariableList, expr1;expr2;...]
Assuming Return is not used in one of the portions of the
compound expression, then Mathematica returns whatever the last
portion of the compound expression evaluates to. That is
expr1;expr2;expr3
Returns result from expr3
Now, for your Part 1, the last portion of the compound
expression was
A[[m,n]] = something
So, Mathematica evaluated something, assigned that result to
A[[m,n]] and returned that result. That is anytime you use Set,
the result returned is the rhs. For example;
In[1]:= a = ConstantArray["", {3, 3}];
a[[2, 3]] = 10
Out[2]= 10
which is why your Part 1 returned a value. Perhaps you wanted to
return the array you defined in this version. If so, simply make
the last portion of the compound expression A. i.e.,
Module[localVaralbieList, expr;expr;A]
As for Part II, the last expression being evaluated was
SurvivalFunction[...]
which was returned. It did not reduce to a value since the local
variable n in your Part II was not given a value. Give the local
variable n a value before the SurvivalFunction call and you will
get a value returned by Part II.