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@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to