[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