       Re: behavior when used inside of Module.

• To: mathgroup at smc.vnet.net
• Subject: [mg117091] Re: behavior when used inside of Module.
• From: Bill Rowe <readnews at sbcglobal.net>
• Date: Wed, 9 Mar 2011 07:01:40 -0500 (EST)

```On 3/8/11 at 5:36 AM, dwaynedcole at gmail.com (Dwayne) wrote:

>This works:

>Position[A, Min[A]]]

>where, A = {5.3, 5.4, 5.2, 5.9}.  the Position function returns ( 3).

>But this doesn't

>Module[{ A, B, RETURN},
>A = Table[ F, {i,{.1, .2, .3, .4}]; (* The function F
>returns {5.3, 5.4, 5.2, 5.9} *)
>B = Position[A, Min[A]]; RETURN = B]

>The above module returns, { }.

There is a missing } in the code above. Presumably you meant

Table[ F, {i,{.1, .2, .3, .4}}]

Table[ F, {i,{.1, .2, .3, .4}]

If the point of this code is to return the position of the
smallest element after using F to operate on the specific array
supplied, it is overly complex. The local variables B and RETURN
are unnecessary. That is

Module[{ A},
A = Table[ F, {i,{.1, .2, .3, .4}];
Position[A, Min[A]]]

Nothing at all is gained by having the additional local
variables. This code can be made even more compact and
efficient. The function Ordering with the second argument is a
more efficient way of obtaining the position of the smallest
element in a list. Specifically,

In:= a = {5.3, 5.4, 5.2, 5.9};
Ordering[a, 1]

Out= {3}