Re: Rules
- To: mathgroup at smc.vnet.net
- Subject: [mg66376] Re: Rules
- From: Peter Pein <petsie at dordos.net>
- Date: Thu, 11 May 2006 02:14:53 -0400 (EDT)
- References: <e3shji$m3u$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Marcin Rak schrieb:
> Hey everyone,
>
> I had two simple questions, and was wondering wether anyone could through
> something my way:
>
> 1) When we have a list, call it AList, and we type the following
> AList /. {rule1}
> AList /. rule1
> what is the difference between the two? And, how would I go about
> defining a rule for the variable AList, and a rule for the contents of the
> list - obviously these are two different concepts, yet how would you
> differentiate b/w the two?
>
> Thanx to all
> MR
>
Hi Marcin,
I try to answer your questions with an example:
Build a list:
alist = 32 + Prime /@ Range[10]
--> {34, 35, 37, 39, 43, 45, 49, 51, 55, 61}
Address the elements (Integers in this case):
alist /. (p_Integer)?PrimeQ :> p + 1
--> {34, 35, 38, 39, 44, 45, 49, 51, 55, 62}
Address the whole list:
alist /. l_List :> 1 + l
--> {35, 36, 38, 40, 44, 46, 50, 52, 56, 62}
Usage of brackets for more than one rule:
alist /. {_Integer?PrimeQ -> "prime", c_Integer :> Plus @@ Last /@ FactorInteger[c]}
--> {2, 2, "prime", 2, "prime", 3, 2, 2, 2, "prime"}
Have a look at the help ("Replace", "ReplaceAll", "Pattern") and follow the links in the documentation to explore the concept of pattern matching.
hth,
Peter