Part specifiers in a list.

• To: mathgroup at christensen.cybernetics.net
• Subject: [mg296] Part specifiers in a list.
• From: kaufman1 at llnl.gov (Al Kaufman)
• Date: Tue, 6 Dec 1994 09:21:30 -0800

```Steve Chorcoran writes:
>If I have a list like,
>
>list = {1,1,1,2}
>
>how do I find the part of a expression at the level specified by the list?
>i.e.
>
>I want exp[[1,1,1,2]],
>
>but exp[[list]] doesn't work.
>

To get an expression specified by a list, one can use:

Part[exp,Sequence@@list] which removes the Head List from List and
replaces it by the undocumented head Sequence.  Sequence automatically
flattens and is absorbed by any other head.  So that:

f[a___,Sequence[b___] -> f[a,b].

Thus, one can define the operation:

ListPart[e_,l_List] := Part[e,Sequence@@l];

One might note that the Mma operation:
Position[e,pat] gives a list of positions of the pattern, pat, in e.
ListPart can be used to extract the items which match the pattern via

ExpressionList[e_,pat_] := Map[ListPart[e,#]&,Position[e,pat]]

================================
Al Kaufman
Lawrence Livermore National Lab
Mail stop L-83
Livermore, Ca  94550
Phone:  510-422-1599
FAX:    510-422-8471
E-mail: <kaufman1 at llnl.gov>
Alt. e-mail: <nutronstar at aol.com>

```

• Prev by Date: Use of Sequence to strip "List"
• Next by Date: movie distortortion
• Previous by thread: Use of Sequence to strip "List"
• Next by thread: movie distortortion