egison-4.0.1: lib/core/io.egi
--
--
-- IO
--
--
--
-- IO
--
print x :=
do write x
write "\n"
flush ()
printToPort port x :=
do writeToPort port x
writeToPort port "\n"
display x :=
do write x
flush ()
displayToPort port x := do writeToPort port x
eachLine proc :=
do let eof := isEof ()
if eof
then return ()
else do let line := readLine ()
proc line
eachLine proc
eachLineFromPort port proc :=
do let eof := isEofPort port
if eof
then return ()
else do let line := readLineFromPort port
proc line
eachLineFromPort port proc
eachFile files proc :=
match files as list string with
| [] -> return ()
| $file :: $rest ->
do let port := openInputFile file
eachLineFromPort port proc
closeInputPort port
eachFile rest proc
--
-- Collection
--
each proc xs :=
match xs as list something with
| [] -> do return ()
| $x :: $rs ->
do proc x
each proc rs
--
-- Debug
--
debug %expr :=
io do print (show expr)
return expr
debug2 %msg %expr :=
io do display msg
print (show expr)
return expr