Re: simultaneous ... and ___
- To: mathgroup at smc.vnet.net
- Subject: [mg60867] Re: simultaneous ... and ___
- From: "Jens-Peer Kuska" <kuska at informatik.uni-leipzig.de>
- Date: Sat, 1 Oct 2005 02:55:43 -0400 (EDT)
- Organization: Uni Leipzig
- References: <dhj4ll$smo$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
you know that your pattern are perfect nonsense ?
m[{___, x1__ , x2___ , x3___ , ___, x3___ , x2___
,
x1__ , ___}] := {} /; (Length[{x1}] +
Length[{x1}] + Length[{x1}]) = 5
will never match, because (Length[{x1}] +
Length[{x1}] + Length[{x1}]) is
3*Length[{x1}] and you *set* this value to 5 ??
you don't test 3*Length[{x1}]==5
? and even when you would test 3*Length[{x1}]==5
this will always fail ?
If you ask a question about pattern matching, can
you be so kind to copy and paste
*exactly* your Mathematica code ?
More over the pattern
x2___... mean that the sequence x2 may be empty
and this "nothing" can be
repated zero or more times, even a empty list
contain "nothing" zero more times
repeated. Than you look for the case that
{__,x2___...,____,x2___...,___}
and that mean that "nothing" may appear a second
time zero or more times.
You don't realy expect that Mathematica will
understand this ? and it seems that
you also don't understand what you are writing.
Regards
Jens
<borges2003xx at yahoo.it> schrieb im Newsbeitrag
news:dhj4ll$smo$1 at smc.vnet.net...
|i have a function m
| Clear[m]
| m[{___, x1__ , x2___ , x3___ , ___, x3___ ,
x2___ ,
| x1__ , ___}] := {} /; (Length[{x1}] +
Length[{x1}] +
| Length[{x1}]) = 5
|
|
| m[l_] := l
| which transform every string in which three
sublists are followed by
| the three in reverse order, and the total of
length of three are >=5.
|
| Everything seems to works
|
| now i want consider the same three sublists in
which is permitted also
| the repetition one or more times.
|
| Clear[m1]
| m1[{___, x1__ .., x2___ ..., x3___ ..., ___,
x3___ ..., x2___ ...,
| x1__ .., ___}] := {}
| m1[l1_] := l1
|
| and all seem to work
| m[{0, 1, 1, 2, 2, 2, 3, 4, 3, 3, 3, 3, 2, 1, 1,
1, 1, 8}]
| gives {}
|
| but if i add the length
|
| m1[{___, x1__ .., x2___ ..., x3___ ..., ___,
x3___ ..., x2___ ...,
| x1__ .., ___}] := {}
| /; (Length[{x1}] + Length[{x1}] + Length[{x1}])
>= 15
| m1[l1_] := l1
|
| dont work
| m[{0, 1, 1, 2, 2, 2, 3, 4, 3, 3, 3, 3, 2, 1, 1,
1, 1, 8}]
| gives
| m[{0, 1, 1, 2, 2, 2, 3, 4, 3, 3, 3, 3, 2, 1, 1,
1, 1, 8}]
|
| if i change 15 with 6 for length
| dont work
|
|
| can anyone help me?
|