PasteRack.org
Paste # 82350
2017-03-22 00:32:12

Fork as a new paste.

Paste viewed 47 times.


Embed:

  1. #lang racket
  2.  
  3. (define (find-min-rest L)
  4.   (let ([s (cdr L)])
  5.     (if (null? s)
  6.         (list (car L) '())
  7.         (let ([t (find-min-rest s)])
  8.           (if (< (car L) (car t))
  9.               (list (car L) s)
  10.               (list (car t) (cons (car L) (cadr t))))))))
  11.  
  12.  
  13. (define (sort1 L)
  14.   (let ([t (find-min-rest L)])
  15.         (cons (car t)
  16.               (if (null? (cadr t))
  17.                   '()
  18.                   (sort1 (cadr t))))))
  19.  
  20.  
  21. (find-min-rest '(4))
  22. (find-min-rest '(1 4))
  23. (find-min-rest '(4 1))
  24. (find-min-rest '(4 1 7 2 9 10))
  25.  
  26. (sort1 '(4 1 7 2 9 10))

=>

'(4 ())

'(1 (4))

'(1 (4))

'(1 (4 7 2 9 10))

'(1 2 4 7 9 10)