haskell-workshop/exercises/block1/3-darts/darts.hs

30 lines
901 B
Haskell

import System.IO
score :: Float -> Float -> Int
score x y -- implement here
main :: IO ()
main = do
input <- readFile "example-input"
expectedOutput <- readFile "example-output"
let results = map (\line ->
let [xStr, yStr] = words line
x = read xStr :: Float
y = read yStr :: Float
in score x y) (lines input)
let expectedResults = map read (lines expectedOutput) :: [Int]
let comparisons = zip results expectedResults
errors = filter (uncurry (/=)) comparisons
-- Print results
if null errors
then putStrLn "Success: All calculated scores match the expected results."
else mapM_ (\(calculated, expected) ->
putStrLn $ "Error: Calculated " ++ show calculated ++ " but expected " ++ show expected)
errors
-- writeFile "example-output" (unlines results)