diff options
author | Camil Staps | 2017-10-03 18:07:44 +0200 |
---|---|---|
committer | Camil Staps | 2017-10-03 18:07:56 +0200 |
commit | ce60c98487257487274e556efaffc71dc25eaf25 (patch) | |
tree | 6dfdcda3b82bc2e4be1fa344679065abb0bc9e55 /assignment-4 | |
parent | Finish 4.2 (diff) |
Fix f3 of A4.1
Diffstat (limited to 'assignment-4')
-rw-r--r-- | assignment-4/student.icl | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/assignment-4/student.icl b/assignment-4/student.icl index 96c01e0..ea0bcdf 100644 --- a/assignment-4/student.icl +++ b/assignment-4/student.icl @@ -98,7 +98,7 @@ instance OrMonad IO where // ---- reading a student record --- // -Start w = run (f3 >>= write) w +Start w = run (f3 >>= write o toString <|> write "Failed\n") w :: Student = { fname :: String @@ -145,13 +145,12 @@ f2 >>= write o toString) <|> write "failed to read a student" -f3 :: IO String +f3 :: IO Student f3 = - ((\f l s -> (toString {fname=rmNL f, lname=rmNL l, snum=s}) +++ "\n") <$> + (\f l s -> {fname=rmNL f, lname=rmNL l, snum=s}) <$> input "Your first name please: " <*> input "Your last name please: " <*> - input "Your student number please: ") - <|> write "Failed to read a student.\n" + input "Your student number please: " where input :: String -> IO a | read a input s = write s *> read |