diff options
-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 |