Gauche でファイルを読み込み、1行 or 1文字毎に処理を行う
2010年01月25日
;;; reader を使ってデータを読み込み、fn で処理を行う (define (read-with-function reader fn) (lambda () (let loop ((val (reader))) (cond ((eof-object? val) '()) (else (fn val) (loop (reader))))))) ;;; ファイルを読み込み、1行毎に処理 fn を適用する (define (read-lines file fn) (with-input-from-file file (read-with-function read-line fn))) ;;; ファイルを読み込み、1文字毎に処理 fn を適用する (define (read-chars file fn) (with-input-from-file file (read-with-function read-char fn)))
行番号を付加する
(define (put-line-number file) (let ((counter 0)) (read-lines file (lambda (line) (format #t "~4,'0d : ~a\n" counter line) (inc! counter)))))
1
文字毎に ,
を追加する
(define (put-comma file) (read-chars file (lambda (c) (display (cond ((char=? c #\newline) (string c)) (else (string c #\,)))))))
プログラミングGauche
posted with amazlet at 10.01.25
Kahuaプロジェクト
オライリージャパン
売り上げランキング: 202591
オライリージャパン
売り上げランキング: 202591