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