(define (quicksort lis) (cond ((null? lis) '() ) ((null? (cdr lis)) lis) (else (let ((new (partition lis)) ) (append (quicksort (car new)) (cons (car (cdr new)) ; pivot element (quicksort (car (cdr (cdr new)))) ) ) ) ) ;else ) ;cond ) ; fun