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 <[EMAIL PROTECTED]> wrote:
On 2/4/07, Eric Olander <[EMAIL PROTECTED]> 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 [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
