Quicksort in Scheme

PHOTO EMBED

Saved by @baristageek #lisp

(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)))))
content_copyCOPY