packages feed

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>]})))