beauty contest. the winner is...
- To: mathgroup at yoda.physics.unc.edu
- Subject: beauty contest. the winner is...
- From: gaylord at ux1.cso.uiuc.edu
- Date: Fri, 10 Apr 1992 09:46:52 -0500
well, quite a few people entered the pageant and there was alot to learn from all of the entries the rules of the contest were changed a bit to allow for a more general startlist (deeper nesting) startlist = {{a, a, a}, {{{b, b}, {b, b, b}}}, {a}} ; the consensus was that pattern matching was the best 'flattening' tool. in no particular order: startlist //. {a___,{b__List},c___} :> {a,b,c} {{a, a, a}, {b, b}, {b, b, b}, {a}} Cases[ startlist, {_Symbol..}, -1] {{a, a, a}, {b, b}, {b, b, b}, {a}} (#//.{b__List} :> b)&/@startlist {{a, a, a}, {b, b}, {b, b, b}, {a}} not alot to say here except that the last program is interesting from the viewpoint of a functional programming style because it applies Map to a list and produces a longer list. This is very 'unfunctional' and it arises because M allows you to change datatypes in the list (a list is changed into a sequence - as we know, Sequence is an odd duck of an M definition which is quite useful). 'real' functional programmers, ML, Miranda, Haskell types (this is a pun), hate this sort of thing since they are into B&D programming (of course, they also hate side effects so there's no accounting for taste). thanks to everyone who participated. it was very educational and of course, preferable to actually working.