egison-2.4.6: sample/io/cat.egi
(define $main
(lambda [$world $argv]
(match argv (List String)
{[<cons $file1 <nil>>
(do {[[$world $port] (open-input-file world file1)]}
(letrec {[$copyLoop (lambda [$world]
(do {[[$world $line] (read-line-from-port world port)]}
(if (eof? line)
world
(do {[$world (write-string world line)]
[$world (write-char world '\n')]}
(copyLoop world)))))]}
(do {[$world (copyLoop world)]
[$world (close-input-port world port)]}
world)))]
[_ <argv-error>]})))