[Haskell-cafe] List operation question
Eric Olander
olandere at gmail.com
Tue Feb 6 00:40:53 EST 2007
That's a clever routine. It should be faster than mine since it only makes
a single pass though the list. Thanks for all the suggestions from everyone
that responded. Here is a link to some more info on the project I'm working
on if anyone is interested: http://ehaskell.blogspot.com/
-Eric
On 2/5/07, ihope <ihope127 at gmail.com> wrote:
>
> On 2/4/07, Eric Olander <olandere at gmail.com> wrote:
> > Hi,
> > I'm still somewhat new to Haskell, so I'm wondering if there are
> better
> > ways I could implement the following functions, especially shiftl:
> >
> > >> moves the last element to the head of the list
> > shiftl :: [a] -> [a]
> > shiftl [] = []
> > shiftl x = [last x] ++ init x
>
> Well, you could try this, though I'm actually sure it's any faster:
>
> > shiftl (x1:x2:xs) = last:x1:init
> > where last:init = shiftl (x2:xs)
> > shiftl [x] = [x]
> > shiftl [] = error "shiftl: empty list"
>
> Or, if you don't want to give an error on [], omit the last line and
> replace both of the [x] with xs.
> _______________________________________________
> 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/20070205/abcd3810/attachment.htm
More information about the Haskell-Cafe
mailing list