(define (largest-sieve lst) (cond ((null? lst) (error "list empty")) ; or 0? depends ((null? (car lst)) 0) (else (let ((m (max (car lst) (cadr lst)))) (largest-sieve (cons max lst) (cddr lst)))))) ; untested though