egison-3.5.2: lib/core/io.egi
;;;;;;
;;;;;;
;;;;;; IO
;;;;;;
;;;;;;
;;;
;;; IO
;;;
(define $print
(lambda [$x]
(do {[(write x)]
[(write "\n")]
[(flush)]
})))
(define $print-to-port
(lambda [$port $x]
(do {[(write-to-port port x)]
[(write-to-port port "\n")]
})))
(define $each-line
(lambda [$proc]
(do {[$eof (eof?)]}
(if eof
(return [])
(do {[$line (read-line)]
[(proc line)]}
(each-line proc))))))
(define $each-line-from-port
(lambda [$port $proc]
(do {[$eof (eof-port? port)]}
(if eof
(return [])
(do {[$line (read-line-from-port port)]
[(proc line)]}
(each-line-from-port port proc))))))
;;;
;;; Collection
;;;
(define $each
(lambda [$proc $xs]
(match xs (list something)
{[<nil> (do {})]
[<cons $x $rs>
(do {[(proc x)]}
(each proc rs))]})))