fork(1) download
  1. ; alchemical reduction
  2.  
  3. (define (chem str)
  4. (let loop ((cs (string->list str)) (zs (list)))
  5. (cond ((null? cs) (reverse zs))
  6. ((null? zs) (loop (cdr cs) (cons (car cs) zs)))
  7. ((and (char-ci=? (car cs) (car zs))
  8. (not (char=? (car cs) (car zs))))
  9. (loop (cdr cs) (cdr zs)))
  10. (else (loop (cdr cs) (cons (car cs) zs))))))
  11.  
  12. (do ((str (read) (read))) ((eof-object? str))
  13. (display (length (chem str))) (newline))
Success #stdin #stdout 0.01s 7972KB
stdin
"AabcdZZqQ"
"aAbxXBctTCz"
stdout
5
1