Re: conditionals on lists
- To: mathgroup at smc.vnet.net
- Subject: [mg79118] Re: conditionals on lists
- From: Peter Pein <petsie at dordos.net>
- Date: Thu, 19 Jul 2007 03:27:23 -0400 (EDT)
- References: <f7ke4t$4pf$1@smc.vnet.net>
mausgeo at aol.com schrieb: > I am trying to run a simulation of a roulette game and I have created > a list of 1's and -1's to represent wins and losses. Using the Split > command I can get ordered pairs with the first coordinate being either > 1 or -1 and the second coordinate being the number of successive > entries. I am having trouble applying a conditional to this new list > as I would like to perform a different function depending on the first > coordinate of the ordered pair. How do I apply a conditional to a list > of ordered pairs? > > Hi, the first method, which comes to my mind is using patterns. Say you've got a list In[1]:= data = {{1, 3}, {-1, 17}, {1, 1}}; and now do a Replace (/.): In[2]:= data /. {{1, n_} :> winfunc[n], {-1, n_} :> losefunc[n]} Out[2]= {winfunc[3], losefunc[17], winfunc[1]} you can use Switch[] (with "error-handling"): In[3]:= winloss[wl_, n_] := Switch[wl, 1, winfunc[n], -1, losefunc[n], _, oops[{wl, n}] ] In[4]:= winloss @@@ data Out[4]= {winfunc[3], losefunc[17], winfunc[1]} hth, Peter