egison-4.0.0: lib/core/io.egi
--
--
-- IO
--
--
--
-- IO
--
print :=
procedure x ->
do write x
write "\n"
flush ()
printToPort :=
procedure port x ->
do writeToPort port x
writeToPort port "\n"
display :=
procedure x ->
do write x
flush ()
displayToPort := procedure port x -> do writeToPort port x
eachLine :=
procedure proc ->
do let eof := isEof ()
if eof
then return ()
else do let line := readLine ()
proc line
eachLine proc
eachLineFromPort :=
procedure port proc ->
do let eof := isEofPort port
if eof
then return ()
else do let line := readLineFromPort port
proc line
eachLineFromPort port proc
eachFile :=
procedure 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 :=
procedure 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