fork download
  1. ; zeros and ones
  2.  
  3. (define (zero xs)
  4. (let ((max-count 0) (max-index -1) (prev2 -1) (prev1 -1) (count 0) (lo 0))
  5. (do ((hi 0 (+ hi 1)) (xs xs (cdr xs))) ((null? xs) max-index)
  6. (when (zero? (car xs)) (set! prev2 prev1) (set! prev1 hi) (set! count (+ count 1)))
  7. (when (= count 2) (set! lo (+ prev2 1)) (set! count 1))
  8. (when (< max-count (- hi lo -1)) (set! max-count (- hi lo -1)) (set! max-index prev1)))))
  9.  
  10. (display (zero '(1 0 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 1))) (newline)
  11. (display (zero '(0 0 1 0 1 1 1 0 1 1))) (newline)
Success #stdin #stdout 0.01s 42848KB
stdin
Standard input is empty
stdout
10
7