diff options
author | Mart Lubbers | 2015-04-24 14:35:17 +0200 |
---|---|---|
committer | Mart Lubbers | 2015-04-24 14:35:17 +0200 |
commit | a067356625105f50978443d3b0a0a5d8f6391184 (patch) | |
tree | d194d49f36232b8e5860ca557c75f11a3ac05afe /fp2/week2/mart/StdIOMonad.dcl | |
parent | updated practicum files (diff) |
rare shit
Diffstat (limited to 'fp2/week2/mart/StdIOMonad.dcl')
-rw-r--r-- | fp2/week2/mart/StdIOMonad.dcl | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/fp2/week2/mart/StdIOMonad.dcl b/fp2/week2/mart/StdIOMonad.dcl new file mode 100644 index 0000000..0d451d2 --- /dev/null +++ b/fp2/week2/mart/StdIOMonad.dcl @@ -0,0 +1,39 @@ +definition module StdIOMonad
+
+// Deze module verpakt een aantal StdFile functies in een monadische jas
+
+import StdMonad, StdMaybeMonad
+
+:: IO a
+:: Void = Void
+:: Filemode = Lees | Schrijf
+:: Filenaam :== String
+:: Filehandle
+
+// voer monadische I/O actie uit op de wereld:
+//doIO :: (IO a) *World -> (a,*World)
+
+// IO is een monad:
+//instance return IO
+//instance >>= IO
+//
+//// lees regel van de console:
+//read :: IO String
+//
+//// schrijf regel naar de console:
+//write :: String -> IO Void
+//
+//// open de file met gegeven filenaam en mode:
+//open :: Filenaam Filemode -> IO (Maybe Filehandle)
+//
+//// sluit de file met gegeven filenaam:
+//close :: Filehandle -> IO Bool
+//
+//// bepaal of het lezen van de file klaar is:
+//eof :: Filehandle -> IO Bool
+//
+//// lees een regel van een file:
+//readline :: Filehandle -> IO (Maybe String)
+//
+//// schrijf een regel naar een file:
+//writeline :: String Filehandle -> IO Bool
|