MathGroup Archive 1994

[Date Index] [Thread Index] [Author Index]

Search the Archive

Part specifiers in a list.

  • To: mathgroup at
  • Subject: [mg296] Part specifiers in a list.
  • From: kaufman1 at (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 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>
Alt. e-mail: <nutronstar at>

  • 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