language: Haskell (ghc-7.4.1)
date: 444 days 12 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
main = do
  print $ safeHead ([] :: [Int])
  print $ safeHead ([1,2] :: [Int])
 
safeHead :: [a] -> Maybe a
safeHead = partial head (not . null)
 
partial :: (a -> b) -> (a -> Bool) -> a -> Maybe b
partial f p x | p x = Just $ f x | otherwise = Nothing