#lang racket ; primim L sortată și inserăm elementul e la poziția corectă (define ins (lambda (e L) (cond ((null? L) (list e)) ; lista L e vidă, rezultatul este lista cu elementul e ((< e (car L)) (cons e L)) ; elementul e trebuie să fie înainte de primul din L (else (cons (car L) (ins e (cdr L)))) ; primul element rămâne, trimitem pe e ; să fie inserat în restul listei ))) ; sortează prin inserție lista L (define insSort (lambda (L) (if (null? L) null ; luăm primul element, sortăm restul listei, și inserăm primul element (ins (car L) (insSort (cdr L))) )))