Re: list manipulation

• To: mathgroup at smc.vnet.net
• Subject: [mg100134] Re: list manipulation
• From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
• Date: Tue, 26 May 2009 05:07:59 -0400 (EDT)
• Organization: Uni Leipzig
• References: <200905191101.HAA07313@smc.vnet.net> <gv0gn0\$a19\$1@smc.vnet.net> <gvdr83\$73q\$1@smc.vnet.net>

```Hi,

data /. {a_, b_, c_, d_, e_, x__} :> {a, b, c, f[d, e], x}

?

Regards
Jens

Scot T. Martin wrote:
> I'm wondering if anyone has bright ideas on the puzzle below. I'm trying
> to take a very large list of the following form:
>
> {{.., .., a, b, ..},{.., .., c, d, ..},..}
>
> into the form
>
> {{.., .., f[a, b], ..},{.., .., f[c, d], ..},..}
>
> It seems to me that there must be some clever and beautiful way to do this
> that I haven't thought of. My code is below with two clumsy solutions.
>
> Suggestions on how to do better?
>
> My code:
>
> In[1]:= (*shown here as minimal to define problem but actual list has \
> large N and many entries*)
>
> data = {{element11, element12, element1N, target11, target12,
>      element1N3, element1N4}, {element21, element22, element2N,
>      target21, target22, element2N3, element2N4}};
>
>
>
> In[2]:= (* first clumsy approach *)
>
> Replace[data, list : _List :> {Sequence @@ list[[1 ;; 3]],
> Sequence[f[list[[4 ;; 5]]]], Sequence @@ list[[6 ;;]]}, {1}]
>
>
> Out[2]= {{element11, element12, element1N, f[{target11, target12}],
>    element1N3, element1N4}, {element21, element22, element2N,
>    f[{target21, target22}], element2N3, element2N4}}
>
>
>
> In[3]:= (* second clumsy approach *)
>
> data /. {a : Repeated[_, {3}], b : Repeated[_, {2}],
> c : __} -> {a, f[b], c}
>
> Out[3]= {{element11, element12, element1N, f[target11, target12],
>    element1N3, element1N4}, {element21, element22, element2N,
>    f[target21, target22], element2N3, element2N4}}
>

```

• Prev by Date: Re: evaluating functions within Findminimum
• Next by Date: Re: seems I broke the FE of V7
• Previous by thread: Re: list manipulation
• Next by thread: Re: list manipulation