haskell-workshop/exercises/block1/2-bob/bob.hs

29 lines
1015 B
Haskell

import System.IO
responseFor :: String -> String
responseFor prompt -- implement here
main :: IO ()
main = do
inputContent <- readFile "example-input"
outputContent <- readFile "example-output"
let prompts = lines inputContent
expectedResults = lines outputContent
actualResults = map responseFor prompts
results = zip3 prompts expectedResults actualResults
let incorrectResults = filter (\(_, expected, actual) -> expected /= actual) results
if null incorrectResults
then putStrLn "All tests passed successfully!"
else do
putStrLn "The following tests failed:"
mapM_ (\(prompt, expected, actual) ->
putStrLn $ "Prompt: " ++ show prompt ++
"\nExpected: " ++ show expected ++
"\nActual: " ++ show actual ++ "\n") incorrectResults
-- let results = map (show . responseFor) (lines inputContent)
-- writeFile "example-output" (unlines results)