Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1999
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1999

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: ? Repeated Patterns ?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg18868] Re: [mg18858] ? Repeated Patterns ?
  • From: "Wolf, Hartmut" <hwolf at debis.com>
  • Date: Sun, 25 Jul 1999 03:30:07 -0400
  • Organization: debis Systemhaus
  • References: <199907230257.WAA20702@smc.vnet.net.>
  • Sender: owner-wri-mathgroup at wolfram.com

DongGook Park schrieb:
> 
> Dear Mathematica users,
> 
> The following Mathematica result quite confuses me. I can understand the output of
> the first input command, but not the second output. Why not {0,1) but
> {0,0,0,1}?
> Many thanks if anyone could help me.
> 
> DongGook Park
> 
> ----- Mathematica script (Repeated patterns) --------
> 
> In[1]:=
> {1,0,0,0} /. {x___Integer, y_Integer..} -> {x, y}
> 
> Out[1]=
> {1,0}
> 
> In[2]:=
> {0,0,0,1} /. {x_Integer.., y___Integer} -> {x, y}
> 
> Out[2]=
> {0,0,0,1}

Dear DongGook,

to see, just look at your expressions with a little more diagnostics:

In[1]:= ReplaceList[{1, 0, 0, 0}, 
             {x___Integer, yall : y_Integer ..} -> {{x}, {y}, yall}]
Out[1]=
{{{1}, {0}, 0, 0, 0}, {{1, 0}, {0}, 0, 0}, {{1, 0, 0}, {0}, 0}}

The most important thing is that y_Integer.. is not equivalent to
y__Integer: if in your expression y_ tries to match 1 ,then y_.. can't
match the rest of the sequence (because they are not all 1), so we have
no occurrence of x___ matching the null sequence. All other matches are
possible and shown by ReplaceList. What you found (and understand) is
the first match, whereafter ReplaceAll is satisfied.

Regarding your second example

In[2]:= ReplaceList[{0, 0, 0, 1}, 
             {xall : x_Integer .., y___Integer} -> {xall, {x}, {y}}]
Out[2]=
{{0, {0}, {0, 0, 1}}, {0, 0, {0}, {0, 1}}, {0, 0, 0, {0}, {1}}}

then nothing is different in principle, except that match you desired
occures in the last position of all possible matches. But this only is
because matching is tried from left to right.

kind regards, hw



  • Prev by Date: Re: How to prevent the saving dialog box ...
  • Next by Date: Re: Compile problem: Mathematica 4
  • Previous by thread: ? Repeated Patterns ?
  • Next by thread: RE: ? Repeated Patterns ?