Re: Replace Heads
- To: mathgroup at smc.vnet.net
- Subject: [mg5231] Re: Replace Heads
- From: Xah Lee <xah at best.com>
- Date: Fri, 15 Nov 1996 03:33:49 -0500
- Organization: Best Internet Communications
- Sender: owner-wri-mathgroup at wolfram.com
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