summaryrefslogtreecommitdiff
path: root/assignment-4
diff options
context:
space:
mode:
authorCamil Staps2017-10-03 18:07:44 +0200
committerCamil Staps2017-10-03 18:07:56 +0200
commitce60c98487257487274e556efaffc71dc25eaf25 (patch)
tree6dfdcda3b82bc2e4be1fa344679065abb0bc9e55 /assignment-4
parentFinish 4.2 (diff)
Fix f3 of A4.1
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