Sorting algorithms/Bubble sort: Difference between revisions

→‎{{header|Scheme}}: Fix formatting, simplified, better variable names
m (→‎{{header|Go}}: library change)
(→‎{{header|Scheme}}: Fix formatting, simplified, better variable names)
Line 2,335:
Here is a recursive bubble sort which sorts list 'l' using the comparator 'f':
 
<lang scheme>(define (bsort f l gt?)
(define (dosort l)
(cond ((equalnull? (cdr l) '()) l)
l)
((f (car l) (cadr l)) (cons (cadr l) (dosort (cons (car l) (cddr l)))))
(else (cons(gt? (car l) (dosort (cdrcadr l))))))
(letcons ((rcadr l) (dosort (cons (car l) (cddr l)))))
(else
(cond ((equal? l r) l)
(cons (car l) (dosort (cdr l))))))
(else (bsort f r)))))</lang>
(let ((try (dosort l)))
(condif ((equal? l r) ltry)
l
(bsort try gt?))))
</lang>
For example, you could do
<lang scheme>(bsort > '(3 2 14 6 2))
(1 2 3)</lang>
 
Anonymous user