Re: Problem using a loop to generate data for Point function
- To: mathgroup at smc.vnet.net
- Subject: [mg35635] Re: Problem using a loop to generate data for Point function
- From: Oliver Ruebenkoenig <ruebenko at donne.imtek.uni-freiburg.de>
- Date: Wed, 24 Jul 2002 02:05:51 -0400 (EDT)
- Organization: Rechenzentrum der Universitaet Freiburg, Germany
- References: <ahg821$92v$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On Mon, 22 Jul 2002, Michael Carnright wrote: > For[i = 1, i < 10, i++, Show[Graphics[Point[{i, i}]]]] > > This genereates nine graphics with one point each. I was trying to > generate one graphic with nine points. I see my problem as calling > the Point function nine times instead of only once. I wish to use the > data generated by the loop on a single graphic. It looks as if you are coming from an imperative programming background. Is the "for loop" a must? Here is a suggestion on a functional solution: Show[Graphics[Point[{#1, #1}] & /@ Range[1, 9]]] i assume you are not familiar with some of the expressions above. evaluate: Range[1, 9] this returns a list with numbers 1 to 9. now Point[{#1, #1}] & is a pure function. this means a function without a name. usually you would write something like a = 1 + i with a pure function you write (1 + #1)& here #1 takes the job of i and the & is to denote that we are dealing with a pure function. to put some values into #1 you could map them. this is what the /@ does. so we map the result from Range[1,9] onto the pure function Point[{#1,#1}]. to see that evaluate: Point[{#1, #1}] & /@ Range[1, 9] does this help ? Oliver Ruebenkoenig, <ruebenko at imtek.de> Phone: ++49 +761 203 7293