Re: Replace
- To: mathgroup at smc.vnet.net
 - Subject: [mg121078] Re: Replace
 - From: "Oleksandr Rasputinov" <oleksandr_rasputinov at hmamail.com>
 - Date: Fri, 26 Aug 2011 05:24:37 -0400 (EDT)
 - Delivered-to: l-mathgroup@mail-archive0.wolfram.com
 - References: <j35am1$og8$1@smc.vnet.net>
 
On Thu, 25 Aug 2011 12:12:01 +0100, Sam Korn <sam at kornfamily.com> wrote:
> Hi, another stupid question. I have a list, and each element in the list  
> is
> a sublist with a pair of integers. How do I replace each element along  
> the
> lines of "{5,6}" with "(5|6)"?
>
> I know it's a stupid question, and there's probably something really  
> obvious
> I'm missing, but I'm really new to Mathematica.
>
> Thanks!
> -Sam
In[1] :=
list = RandomInteger[{-5, 5}, {10, 2}]
Out[1] =
{{-4, -4}, {-1, -3}, {4, 4}, {0, -4}, {-5, 3}, {-5, 4}, {-1, -2}, {5, -2},  
{1, -1}, {-4, 1}}
In[2] :=
list /. {x_, y_} :> (x | y)
Out[2] =
{-4 | -4, -1 | -3, 4 | 4, 0 | -4, -5 | 3, -5 | 4, -1 | -2, 5 | -2, 1 | -1,  
-4 | 1}
("/." is a sigil used in infix notation to denote the function ReplaceAll.  
":>" is RuleDelayed in the same sense.)
It's unclear to me if the above is what you intended; (x | y) is  
understood by Mathematica as a pattern which matches either x or y. If you  
had wanted something that simply displays as such without having any  
particular meaning you may instead use
In[3] :=
list /. {x_, y_} :> StringForm["(`1`|`2`)", x, y]
Out[3] =
{(-4|-4),(-1|-3),(4|4),(0|-4),(-5|3),(-5|4),(-1|-2),(5|-2),(1|-1),(-4|1)}
or perhaps
In[4] :=
Format@customizedElement[x_, y_] := StringForm["(`1`|`2`)", x, y];
customizedElement @@@ list
Out[4] =
{(-4|-4),(-1|-3),(4|4),(0|-4),(-5|3),(-5|4),(-1|-2),(5|-2),(1|-1),(-4|1)}
which has the advantage of allowing other operations to be defined on  
customizedElement if desired.