# 99 questions/Solutions/1

### From HaskellWiki

< 99 questions | Solutions(Difference between revisions)

m |
Luc4sdreyer (Talk | contribs) m (Added another answer: myLast''''') |
||

Line 17: | Line 17: | ||

myLast'''' = foldl1 (curry snd) | myLast'''' = foldl1 (curry snd) | ||

+ | |||

+ | myLast''''' [] = error "No end for empty lists!" | ||

+ | myLast''''' x = x !! (length x -1) | ||

+ | |||

</haskell> | </haskell> | ||

The <hask>Prelude</hask> also provides the function <hask>last</hask>. | The <hask>Prelude</hask> also provides the function <hask>last</hask>. |

## Revision as of 15:16, 18 September 2012

(*) Find the last element of a list.

myLast :: [a] -> a myLast [x] = x myLast (_:xs) = myLast xs myLast' = foldr1 (const id) -- Prelude> const 1 2 -- 1 -- Prelude> (flip const) 1 2 -- 2 myLast'' = foldr1 (flip const) myLast''' = head . reverse myLast'''' = foldl1 (curry snd) myLast''''' [] = error "No end for empty lists!" myLast''''' x = x !! (length x -1)

Prelude

last