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
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
