summaryrefslogtreecommitdiff
path: root/assignment-4
diff options
context:
space:
mode:
Diffstat (limited to 'assignment-4')
-rw-r--r--assignment-4/student.icl9
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