Re: Pattern matching / subsequence matching, question on
- To: mathgroup at smc.vnet.net
- Subject: [mg101459] Re: [mg101419] Pattern matching / subsequence matching, question on
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Wed, 8 Jul 2009 07:08:10 -0400 (EDT)
- References: <200907070904.FAA21966@smc.vnet.net>
- Reply-to: drmajorbob at bigfoot.com
I think you have a point, since the following codes work equally well: Clear[find1, find2, findSubsequence] find1[lis_List, {subseq__}] := Position[Partition[lis, Length@{subseq}, 1], {subseq}] find2[lis_List, subseq_List] := Position[Partition[lis, Length@subseq, 1], subseq] findSubsequence[lis_List, subseq_List] := Module[{p}, p = Partition[lis, Length[subseq], 1]; Position[p, Flatten[{___, subseq, ___}]]] test = RandomInteger[{0, 1}, 100]; findSubsequence[test, {0, 0, 0}] find1[test, {0, 0, 0}] find2[test, {0, 0, 0}] {{1}, {2}, {19}, {20}, {21}, {22}, {23}, {24}, {25}, {26}, {46}, {72}} {{1}, {2}, {19}, {20}, {21}, {22}, {23}, {24}, {25}, {26}, {46}, {72}} {{1}, {2}, {19}, {20}, {21}, {22}, {23}, {24}, {25}, {26}, {46}, {72}} Bobby On Tue, 07 Jul 2009 04:04:00 -0500, heycarnut <heycarnut at gmail.com> wrote: > On pp 154-156 of the book, the example to search a sequence of digits > for a given subsequence is shown as > > FindSubsequence[lis_List, subseq_List] := Module[{p}, p = > Partition[lis, Length[subseq], 1]; Position[p, Flatten[{___,subseq, > ___}]]] > > I'm puzzled at the use of Flatten[{___,subseq, ___}] for the pattern, > instead of just subseq, and can't seem to see what, if anything, it > adds to the functionality of the example. Can someone thaw my brain > freeze? > > Thanks > Rob > -- DrMajorBob at bigfoot.com
- References:
- Pattern matching / subsequence matching, question on example in
- From: heycarnut <heycarnut@gmail.com>
- Pattern matching / subsequence matching, question on example in