Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Main where
- import System.IO (isEOF)
- getModuleMass :: IO (Maybe Integer)
- getModuleMass = do
- done <- isEOF
- if done
- then return Nothing
- else Just <$> read <$> getLine
- fuelRequirement :: Integer -> Integer
- fuelRequirement x = (x `div` 3) - 2
- totalFuelRequirement :: IO Integer
- totalFuelRequirement = addFurtherRequirements 0
- where addFurtherRequirements acc =
- getModuleMass >>=
- maybe
- (pure acc)
- (\mass -> addFurtherRequirements (acc + (fuelRequirement mass)))
- main :: IO ()
- main = (show <$> totalFuelRequirement) >>= putStrLn
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement