all tasks

This commit is contained in:
Ingy döt Net 2013-04-11 01:07:29 -07:00
parent b83f433714
commit 68f8f3e56b
14735 changed files with 178959 additions and 0 deletions

View file

@ -0,0 +1,29 @@
(define reader->printer-channel (make-channel))
(define printer->reader-channel (make-channel))
(define (sync-line-counter filename)
(define (reader)
(define file-port (open-input-file filename))
(let loop ([line (read-line file-port)])
(when (not (eof-object? line))
(begin
(channel-put reader->printer-channel line)
(loop (read-line file-port)))))
(channel-put reader->printer-channel eof)
(let ([num-lines (channel-get printer->reader-channel)])
(printf "Number of lines printed = ~a~%" num-lines)))
(define (printer)
(define count 0)
(let loop ([line (channel-get reader->printer-channel)])
(when (not (eof-object? line))
(begin
(printf "~a~%" line)
(set! count (add1 count))
(loop (channel-get reader->printer-channel)))))
(channel-put printer->reader-channel count))
(thread reader)
(thread printer))
(sync-line-counter "input.txt")