leque #6992(2008/08/05 22:35 GMT) [ Scheme ] Rating0/0=0.00
愚直にキューをつかって。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
(use gauche.parseopt) (use gauche.selector) (use util.queue) (define (main args) (let-args (cdr args) ((nlines "n=n" 10) (f? "f" #f) . argv) (call-with-input-file (car argv) (lambda (iport) (let ((q (make-queue))) (let loop ((n 0) (line (read-line iport))) (unless (or (= n nlines) (eof-object? line)) (enqueue! q line) (loop (+ n 1) (read-line iport)))) (do ((line (read-line iport) (read-line iport))) ((eof-object? line)) (enqueue! q line) (dequeue! q)) (for-each print (queue->list q))) (when f? (with-signal-handlers ((SIGINT => (lambda _ (exit 0)))) (lambda () (let ((sel (make <selector>))) (selector-add! sel iport (lambda (input _) (and-let* ((line (read-line input)) ((not (eof-object? line)))) (print line)) (sys-sleep 1)) '(r)) (while #t (selector-select sel)))))) 0))))
Rating0/0=0.00-0+
[ reply ]
leque
#6992()
[
Scheme
]
Rating0/0=0.00
愚直にキューをつかって。
Rating0/0=0.00-0+
[ reply ]