fork download
  1. ; diminishing gap sort
  2.  
  3. (define (zip . xss) (apply map list xss))
  4.  
  5. (define xs (list 80 256 144 5 12 134 15 14 121))
  6.  
  7. (define (gaps xs)
  8. (let ((ys (append (cdr xs) (list 0))))
  9. (zip (map - xs ys) xs)))
  10.  
  11. (display (gaps (sort xs >))) (newline)
  12.  
  13. (define (car> xs ys) (> (car xs) (car ys)))
  14.  
  15. (define (diminishing-gap-sort xs)
  16. (map cadr (sort (gaps (sort xs >)) car>)))
  17.  
  18. (display (diminishing-gap-sort xs)) (newline)
Success #stdin #stdout 0.02s 8672KB
stdin
Standard input is empty
stdout
((112 256) (10 144) (13 134) (41 121) (65 80) (1 15) (2 14) (7 12) (5 5))
(256 80 121 134 144 12 5 14 15)