MathGroup Archive 1996

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

Search the Archive

Re: Replace Heads


This is a summary on solutions to a programming problem "Replace Heads".

Problem:
Given an abritrary expression, how to replace all heads to List?

Example,
Clear[a,b,c,d,e,f,g,expr]
f := ({a,b,c,d,e,g}[[Random[Integer, {1,6}] ]])
expr = Array[ Hold at f, {3,2,3},1, Hold at f]//ReleaseHold
Map[ {(Sequence@@#)}&, expr, {0,-2}]

Solutions:
The following people

David B. Wagner" <dbwagner at princon.com>
Allan Hayes <hay at haystack>
Robert Villegas <villegas at wolfram.com>
Wouter <vdmcc at vandemoortele.be>
fransm at win.tue.nl (Frans Martens)

Gave the simple solution:

Apply[ List, expr, {0,-2}]

---

Yokoi Takahisa <yokoi at skk.is.tohoku.ac.jp>
expr //. (head:_) [args___] :> List[args] /; (List =!= head)

jpk at apex.mpe.FTA-Berlin.de (Jens-Peer Kuska)
expr //. any_?(List=!=# &)[args___] :> List[args]


Robby Villegas took the problem one step futher and considered cases
where expr contain heads that are not atoms, or whether you want your
expr remain unevaluated. Robby Villegas rank among the tops who
understand Mathematica language in DEPTH. Read his messages.

 Xah
 xah at best.com; 74631.731 at compuserve.com
 http://www.best.com/~xah/SpecialPlaneCurves_dir/specialPlaneCurves.html
 Mountain View, CA, USA


  • Prev by Date: WORD WRAP disable??
  • Next by Date: Re: labelling contours
  • Previous by thread: WORD WRAP disable??
  • Next by thread: Re: reading/writing pictures