RE: RE: Expanding a nested structure (pattern matching?)

• To: mathgroup at smc.vnet.net
• Subject: [mg24877] RE: [mg24855] RE: [mg24835] Expanding a nested structure (pattern matching?)
• From: "David Park" <djmp at earthlink.net>
• Date: Sat, 19 Aug 2000 04:45:51 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```[From Hartmut Wolf]
> Also redefining...
>
> dsb2[h_List] := Flatten[h]
> dsb2[h_ /; MemberQ[h, {___}]] := Distribute[h, List]
> dsb2[a_] := a
>
> dsb2 //@ e4
> {f[a, c1], f[a, c2], f[a, d1], f[a, d2], f[b, c1], f[b, c2], f[b, d1],
>   f[b, d2]}
>

Dear Hartmut,

That seems like a nice solution. And I was blithely unaware of MapAll!

Here is a somewhat more complete list of examples. John communicated with me
and gave a case with variable numbers of and lengths of lists.

e1 =  a[b, c, d[{f, g}, {h, j}]]
e2 =  a[b, c, d[e, f[{f1, f2}, {f3, f4}]]]
e3 =  a[b, c[{c1, c2}, {c3, c4}], d[e, f[{f1, f2}, {f3, f4}]]]
e4 = f[{a, b}, {{c1, c2}, {d1, d2}}]
e5 = a[b, c, d[e, f[{f1, f2}, {f3, f4, f5}, {f6, f7}]]]
e6 = a[b, c[{c1, c2}, {c3}], d[e, f[{f1, f2}, {f3, f4, f5}, {f6, f7}]]]

On the last case, your method was more than 10 times faster than my
procedure.

David Park