Difference between revisions of "99 questions/Solutions/2"
< 99 questions | Solutions
Jump to navigation
Jump to search
(Add foldl based solution.) |
|||
Line 14: | Line 14: | ||
myButLast'''' = head . tail . reverse |
myButLast'''' = head . tail . reverse |
||
+ | |||
+ | myButLast''''' = snd.(foldl (\(a,b) c -> (c,a)) (e1, e2)) |
||
+ | where e1 = error "List too small!" |
||
+ | e2 = error "List is null!" |
||
</haskell> |
</haskell> |
||
Revision as of 00:12, 11 May 2014
(*) 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
myButLast''''' = snd.(foldl (\(a,b) c -> (c,a)) (e1, e2))
where e1 = error "List too small!"
e2 = error "List is null!"