Re: question in mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg80099] Re: question in mathematica
- From: Ray Koopman <koopman at sfu.ca>
- Date: Sun, 12 Aug 2007 07:23:17 -0400 (EDT)
- References: <fa11b990e477.46baf2d3@bgu.ac.il>
On Aug 10, 11:43 pm, Andrzej Kozlowski <a... at mimuw.edu.pl> wrote:
> On 10 Aug 2007, at 10:12, Ivan Egorov wrote:
>> 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.
None of those are needed, unless you call NestList recursive.
Pick[lis, Last/@FoldList[{Max[#1[[1]],#2], #1[[1]] < #2}&,
{lis[[1]], True}, Rest@lis] ]
(not tested)