; Beispiel für das Sortieren von Listen (Steffen Goebbels 1990)
; Sortieren durch Einfügen

; inssort sortiert element in liste ein
; liste muß dabei bereits sortiert sein

(defun inssort (element liste)
   (cond ((eq liste nil) (cons element nil))
                         ;element ist <= allen anderen in liste
         (t (cond ((>= element (car liste))
                         ;muß hier element einsortiert werden ?
                     (cons (car liste) (inssort element (cdr liste))))
                  (t (cons element liste))))))

; sort iteriert diesen Vorgang für alle Elemente einer Liste

(defun sort (unsortierte_Liste &aux sortierte_Liste)
   (setq sortierte_Liste nil) ;initialisieren
   (while (not (eq unsortierte_Liste nil)) ;alle Listenelemente durchgehen
     (setq sortierte_Liste (inssort (car unsortierte_Liste) sortierte_Liste))
     (setq unsortierte_Liste (cdr unsortierte_Liste)))
   sortierte_Liste ;Die sortierte Liste wird zurückgegeben
)
(terpri)(terpri)(princ "Insertsort in ALisp")
(terpri)(princ "Mit sort können nun Listen sortiert werden.")(terpri)
