Re: a question about pattern replacements
- To: mathgroup at smc.vnet.net
- Subject: [mg36167] Re: [mg36163] a question about pattern replacements
- From: BobHanlon at aol.com
- Date: Mon, 26 Aug 2002 04:15:44 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
In a message dated 8/23/02 10:24:31 PM, sidney at jigsaw.nl writes: >While playing arounf with patterns and substitutions, I came across the >following behavior which I didn't expect: > >z := SomeHead[{{1, 2}, {3, 4}}] >z /. {SomeHead[q_] -> Flatten[q]} > >While this _does_ yield the desired result {1,2,3,4}, Mathematica complains: > >Flatten::"normal": Nonatomic expression expected at position 1 in >Flatten[q]. > >........as if it is trying to evaluate Flatten[q], with q not bound to >{{1,2},{3,4}}. > >Could anybody explain why this happens? z:=SomeHead[{{1,2},{3,4}}] The error is associated with defining the Rule not executing it. Note that you get the error with {SomeHead[q_]->Flatten[q]}; Use RuleDelayed z/.{SomeHead[q_]:>Flatten[q]} {1, 2, 3, 4} Bob Hanlon Chantilly, VA USA