99 questions/Solutions/2: Difference between revisions

From HaskellWiki
(copied solution from Editing 99 questions/1 to 10)
 
No edit summary
Line 12: Line 12:
myButLast''' (x:(_:[])) = x
myButLast''' (x:(_:[])) = x
myButLast''' (_:xs) = myButLast''' xs
myButLast''' (_:xs) = myButLast''' xs
myButLast'''' = head . tail . reverse
</haskell>
</haskell>

Revision as of 14:38, 25 October 2011

(*) Find the last but one element of a list.

myButLast :: [a] -> a
myButLast = last . init

myButLast' x = reverse x !! 1

myButLast'' [x,_]  = x
myButLast'' (_:xs) = myButLast'' xs

myButLast''' (x:(_:[])) = x
myButLast''' (_:xs) = myButLast''' xs

myButLast'''' = head . tail . reverse