blob: 580efaa6805edda0dbb9105620d975039e58c566 (
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
40
|
definition module StdIOMonad
// Deze module verpakt een aantal StdFile functies in een monadische jas
import StdMonad, StdMaybe
:: IO a
:: *W
:: Void = Void
:: Filemode = Lees | Schrijf
:: Filenaam :== String
:: Filehandle :== String
// voer monadische I/O actie uit op de wereld:
doIO:: (IO a) *World -> *(a, *W)
// 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
|