[ create a new paste ] login | about

Project: programmingpraxis
Link: http://programmingpraxis.codepad.org/ml5SKPg0    [ raw code | fork ]

programmingpraxis - Scheme, pasted on Mar 25:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#! /usr/bin/scheme --script

(define (sum)
  (let loop ((c (read-char)) (s 0) (b 0))
    (if (eof-object? c)
        (values s (+ (quotient b 512) (if (zero? (modulo b 512)) 0 1)))
        (loop (read-char) (modulo (+ s (char->integer c)) 65535) (+ b 1)))))

(if (null? (cdr (command-line)))
    (let-values (((s b) (sum)))
      (display s) (display " ") (display b) (newline))
    (do ((files (cdr (command-line)) (cdr files))) ((null? files))
      (with-input-from-file (car files)
        (lambda ()
          (let-values (((s b)(sum)))
            (display s) (display " ")
            (display b) (display " ")
            (display (car files)) (newline))))))


Create a new paste based on this one


Comments: