summaryrefslogtreecommitdiff
path: root/fp2/week2/mart/EchoMonad.icl
diff options
context:
space:
mode:
Diffstat (limited to 'fp2/week2/mart/EchoMonad.icl')
-rw-r--r--fp2/week2/mart/EchoMonad.icl14
1 files changed, 14 insertions, 0 deletions
diff --git a/fp2/week2/mart/EchoMonad.icl b/fp2/week2/mart/EchoMonad.icl
new file mode 100644
index 0000000..3bcab11
--- /dev/null
+++ b/fp2/week2/mart/EchoMonad.icl
@@ -0,0 +1,14 @@
+module EchoMonad
+
+import StdString // expliciete import uit StdEnv om nameclash met StdFunc / StdIOMonad te voorkomen
+import StdIOMonad
+import StdMaybeMonad
+
+Start :: *World -> (Void,*World)
+Start world = doIO echo world
+
+echo :: IO Void
+echo = read >>= \regel ->
+ if (regel == "\n")
+ (return Void)
+ (write regel >>= \_ -> echo)