MathGroup Archive 2004

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

Search the Archive

More Pattern Match Understanding Problems

  • To: mathgroup at
  • Subject: [mg46620] More Pattern Match Understanding Problems
  • From: Harold.Noffke at (Harold Noffke)
  • Date: Wed, 25 Feb 2004 13:07:12 -0500 (EST)
  • Sender: owner-wri-mathgroup at


In the Mathematica 5 Book, Section 2.3.8, "Functions with Variable
Numbers of Arguments," there are three examples of using ReplaceList
to understand pattern matching (In/Out-4,5,6).  I understand In/Out-4
and In/Out-6 if I assume the Mathematica explanation (immediately
below) refers only to "labeled blanks" when it says "blanks" ...

    When you use multiple blanks, there are often several matches that
    are possible for a particular expression.  In general, Mathematica
    tries first those matches that assign the shortest sequences of
    arguments to the first <labeled?> multiple blanks that appear in
    the pattern.

When I examine In/Out-5, however, my understanding breaks down when I
see that the answer Mathematica gives is g[a,b,c,d], which is the
longest (not the shortest) sequence assigned to the labeled blank x__.

        ReplaceList[f[a, b, c, d], f[___, x__] -> g[x]]
        {g[a,b,c,d], g[b,c,d], g[c,d], g[d]}

Therefore, I conclude my reasoning is incorrect.

Can anyone provide some guidance on how to think through In/Out-4,5,6
without assuming labeled multiple-blanks have priority over unlabeled


  • Prev by Date: Re: ListPlot output
  • Next by Date: Question about Integrate and If
  • Previous by thread: RE: Matrix Element Extraction
  • Next by thread: Re: More Pattern Match Understanding Problems