blob: a37a9798e1e59fea120d9856e29c10f7da719de1 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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
|