packages feed

egison-2.1.11: sample/io/copy.egi

(define $main
  (lambda [$: $argv]
    (match argv (List String)
      {[<cons $file1 <cons $file2 <nil>>>
        (do {[[$: $port1] (open-input-file : file1)]
             [[$: $port2] (open-output-file : file2)]}
            (letrec {[$copyLoop (lambda [$:]
                                  (do {[[$: $line] (read-line-from-port : port1)]}
                                      (if (eof? line)
                                          :
                                          (do {[$: (write-string-to-port : port2 line)]
                                               [$: (write-char-to-port : port2 '\n')]}
                                              (copyLoop :)))))]}
              (do {[$: (copyLoop :)]
                   [$: (close-output-port : port2)]
                   [$: (close-input-port : port1)]}
                  :)))]
       [_ <argv-error>]})))