Re: question in mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg80066] Re: question in mathematica
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Sat, 11 Aug 2007 02:22:04 -0400 (EDT)
- References: <fa11b990e477.46baf2d3@bgu.ac.il> <D370EB89-ACFD-4FFF-B4E7-84A25FF267C5@mimuw.edu.pl> <C82B7D4D-6C0B-47E1-8603-DEE030A6E387@mimuw.edu.pl> <f69ab100e04a.46bc3a23@bgu.ac.il>
First, please send such question to the MathGroup, mathgroup at smc.vnet.net not me personally. (I really have desire, tiem or ability to replace the enitre MathGroup.) So I have decided to post this question to the MathGroup in case someone else finds it interesting. Also, there is something about this question and the earlier you sent me that make sme suspicious. What do you say "you need to use recursion and pattern matching, Select and Join"? This sounds to me like some sort of test problem so I have decided to answer it but without using any of these functions (although it may not be the simplest way to do this). So here is my answer: ls = {9, 2, 10, 3, 14, 9}; Reverse[Last[Last[Reap[NestWhile[With[{a = First[Ordering[#, -1]]}, Sow[#[[a]]]; Take[#, a - 1]] &,ls,Length[#] > 0 &]]]]] {9, 10, 14} On 10 Aug 2007, at 10:12, Ivan Egorov wrote: > I have one more question. > > > > Write a function maxima[lis_List] which, given a list of numbers, > produces a list of those > > numbers greater than all those that precede them. For example > > maxima[{ 9, 2, 10, 3, 14, 9}] returns { 9, 10, 14}. You need to use > recursion, pattern matching, > > Select and Join. > > > =E2=80=8E