[Haskell-cafe] Re: Ultra-newbie Question
henriquebecker91 at gmail.com
Mon Sep 20 20:45:23 EDT 2010
Thanks, It's my first post.
If you not import Prelude is more clear (N. is horrible):
import Prelude ((-), Integral)
import Data.Number.Nat (drop, length, toNat)
lastN :: Integral b => b -> [a] -> [a]
lastN n xs = drop (length xs - n') xs
where n' = toNat n
P.S.: You benchmarked? I didn't...
2010/9/20, Luke Palmer <lrpalmer at gmail.com>:
> On Mon, Sep 20, 2010 at 5:11 PM, Luke Palmer <lrpalmer at gmail.com> wrote:
>> On Sun, Sep 19, 2010 at 5:01 PM, Henrique Becker
>> <henriquebecker91 at gmail.com> wrote:
>>> Why not?
>>> import Data.Number.Nat as N
>>> lastN :: Integral b => b -> [a] -> [a]
>>> lastN n xs = N.drop (N.length xs - n') xs
>>> where n' = N.toNat n
>> Wow. That is gorgeous! I think it's basically the same idea as my
>> "zipWith" implementation, but it is so much clearer here. Thanks :-)
> Er forget that zipWith comment. It is quite unlike that. But it is
> still beautiful and efficient.
More information about the Haskell-Cafe