[Haskell-cafe] Re: Ultra-newbie Question

Gregory Crosswhite gcross at phys.washington.edu
Sun Sep 19 00:24:21 EDT 2010


  Translation:  Look at Data.Sequence sometime.

On 9/18/10 11:15 AM, Maciej Piechotka wrote:
> On Sat, 2010-09-18 at 03:51 -0400, Christopher Tauss wrote:
>> Hello Haskell Community -
>>
>> I am a professional programmer with 11 years experience, yet I just do
>> not seem to be able to get the hang of even simple things in Haskell.
>> I am trying to write a function that takes a list and returns the last
>> n elements.
>>
>> There may be a function which I can just call that does that, but I am
>> trying to roll my own just to understand the concept.
>>
>> Let's call the function n_lastn and, given a list  [1,2,3,4,5], I
>> would like
>> n_lastn 3 = [3,4,5]
>>
>> Seems like it would be something like:
>>
>> n_lastn:: [a]->Int->[a]
>> n_lastn 1 (xs) = last(xs)
>> n_lastn n (x:xs) = ????
>>
>> The issue is I do not see how you can store the last elements of the
>> list.
>>
>> Thanks in advance.
>>
>> ctauss
> I'll add my $0.03 - unless you are doing it to learn about lists rethink
> your approach. Taking k elements from end of n-element list will be O(n)
> operation.
>
> For example with appropriate structures (like finger trees) it would
> look like O(k) operation.
>
> Regards
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20100918/af50eb49/attachment.html


More information about the Haskell-Cafe mailing list