注:このプログラムは間違えています.
昨日のBubbleSortをもうちょっと修正.
letを使って複数出てくる(bsort-swap (car lstdata) (cdr lstdata))をまとめた.
#!/usr/bin/env gosh (define (bsort lstdata) (define (bsort-swap x lst) (if (pair? lst) (if (< x (car lst)) (append (list x) lst) (append (list (car lst)) (bsort-swap x (cdr lst))) ) (list x) ) ) (if (pair? lstdata) (let (( sortlist (bsort-swap (car lstdata) (cdr lstdata)))) (append (list (car sortlist)) (bsort (cdr sortlist))) ) lstdata ) ) (define (main args) (let ((inputlist `(9 0 1 8 2 7 3 6 4 5))) (print inputlist) (print (bsort inputlist)) ) )
またちょっとすっきりした.