Guest User

Untitled

a guest
May 17th, 2013
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. data LockerState = Taken | Free deriving (Show, Eq)
  2. type Code = String
  3. type LockerMap = Map.Map Int (LockerState, Code)
  4. lockerLookup :: Int -> LockerMap -> Either String Code
  5. lockerLookup lockerNumber map =
  6.   case Map.lookup lockerNumber map of
  7.     Nothing -> Left $ "Locker number " ++ show lockerNumber ++ " doesn't exist!"
  8.     Just (state, code) -> if state /= Taken
  9.                            then Right code
  10.                            else Left $ "Locker " ++ show lockerNumber ++ " is already taken!"
Advertisement
Add Comment
Please, Sign In to add comment