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