Gauche

ある方からの投稿です。apt-getしたのにgaucheというコマンドがなくてしばらく焦りました。(goshがインタプリタ名)

(define (main args)
   (define (err sts . args)
     (apply format (current-error-port) args)
     sts)
   (if (not (= (length args) 2))
       (err 1 "Usage: ~a filename\n" (car args))
       (guard (e (else (err 70 "Error: ~a\n" (ref e 'message))))
        (call-with-input-file (cadr args)
          (lambda (in)
            (for-each (lambda (t) (or (string=? t "") (print t)))
                      (string-split (port->string in) #[\s]))
            0)))))

AWK

AWKerのある方からの投稿です。

BEGIN {
  if (ARGC != 2) {
    getline cmd_line_name < "/proc/self/cmdline";
    split(cmd_line_name, cmd_line_name_arr, "\0");
    printf("Usage: %s filename\n", cmd_line_name_arr[3]);
    exit 1;
  }
}
{
  buffer = buffer $0 "\n";
}
END {
    gsub(/[ \t\n\r\f\v]+/, "\n", buffer);
    printf("%s", buffer);
}

ちょっとオレなりに脚色しましたがどうでしょう。 このスクリプトのアレなところは,/proc/self/cmdlineを\0でsplitしているところに尽きます。

LL/同じ処理での比較例/その他のLL(Gauche,AWK) (last edited 2006-06-24 22:09:08 by KeisukeUrago)