RE: & without #

• To: mathgroup at smc.vnet.net
• Subject: [mg73111] RE: [mg73042] & without #
• From: "Virgilio, Vincent - SSD" <Vincent.Virgilio at itt.com>
• Date: Sat, 3 Feb 2007 04:52:22 -0500 (EST)

```& is short for Function, which has attribute HoldAll.  So  Random
reevaluates on each iteration of Array in your first example.  Hence the
unique samples. And Function "eats" the iterator value.

Random evaluates once in your second example.  Hence the value 3 for
each Array iteration.  3 is not a Function, so does not eat the iterator
value.

Vince Virgilio

-----Original Message-----
From: Kristen W Carlson [mailto:carlsonkw at gmail.com]
Sent: Tuesday, January 30, 2007 11:41 PM
To: mathgroup at smc.vnet.net
Subject: [mg73111] [mg73042] & without #

Hi,

To: mathgroup at smc.vnet.net

L=Array[Random[Integer,10]&,20]

{4,5,9,6,8,5,4,0,9,4,5,2,10,6,3,7,4,2,2,8}

Here is what happens without the &:

L=Array[Random[Integer,10],20]

{3[1],3[2],3[3],3[4],3[5],3[6],3[7],3[8],3[9],3[10],3[11],3[12],3[13],3[
14],3[15],3[16],3[17],3[18],3[19],3[20]}

Can someone who understands this please explain as completely as you
can, including how & and # work together, given the behavior of & alone.
And is this documented anywhere?

This might help and I also post it to help illuminate for those who
haven't seen this & usage; it is from Andrzej a while ago (Andrzej I
hope you don't mind):

In general it means a constant function. For example 3& will return 3
with any argument. But the are at least two "special" functions, which
will work like "variable constants" when used in this way. One of them
is Random[]& (and various variants of it). Another is Unique [symbol]&,
which on every evaluation will produce a unique name based on "symbol".

Kris

************************************
This e-mail and any files transmitted with it are proprietary and intended solely
for the use of the individual or entity to whom they are addressed. If you have