Gauche3日目

注:このプログラムは間違えています.

昨日の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))
)
)

またちょっとすっきりした.

コメントする