Match exactly zero or one

• To: mathgroup at smc.vnet.net
• Subject: [mg60518] Match exactly zero or one
• From: "Trevor Baca" <trevorbaca at gmail.com>
• Date: Mon, 19 Sep 2005 04:45:38 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```What's the easiest way to match exactly zero or one expressions within,
say, MatchQ[ ]?

For example: call any expression expr a well-formed foo when and only
when (1) the head of expr equals foo; (2) the first element of expr is
either 0 or 1 bar expressions; (3) the last element of expr is an
integer. Then neither the  predicate ...

FooQ[expr_] := MatchQ[expr, foo[_bar, _Integer]]

... nor ...

FooQ[expr_] := MatchQ[expr, foo[__bar, _Integer]]

... nor ...

FooQ[expr_] := MatchQ[expr, foo[___bar, _Integer]]

... accurately capture the definition of foo.

For string-matching there's the ? operator; but what's the best
approach for expression-matching?

(FWIW Gavin Scott posed this question in December 2000, but I couldn't

Trevor.

```

• Prev by Date: Re: Outputting MatrixForm to Word
• Next by Date: Re: integral to table values
• Previous by thread: Re: Differences between recursions and limit
• Next by thread: Re: Match exactly zero or one