;;;;;; ;;;;;; ;;;;;; 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) {[ (do {})] [ (do {[(proc x)]} (each proc rs))]})))