(define (quicksort lst op) (if (null? lst) lst (let* ((one (car lst)) (left (filter (lambda (x) (op x one)) (cdr lst))) (right (filter (lambda (x) (not (op x one))) (cdr lst)))) (append (quicksort left op) (list one) (quicksort right op)))))
(define (quicksort lst op) (if (null? lst) lst (let* ((one (car lst)) (left (filter (lambda (x) (op x one)) (cdr lst))) (right (filter (lambda (x) (not (op x one))) (cdr lst)))) (append (quicksort left op) (list one) (quicksort right op)))))