Gaucheでバブルソート

FizzBuzzしたし,とりあえずソーティングでもやってみるか~と思ってバブルソートしてみた.

ら,鬼のようにむずかった(涙

Gauche1日目にして無茶した.

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

#!/usr/bin/env gosh
(define bsort-swap
(lambda (x lst)
(if (pair? lst)
(if (< x (car lst))
(append (list x) lst)
(append (list (car lst)) (bsort-swap x (cdr lst)))
)
(list x)
)
)
)
(define bsort
(lambda (lstdata)
(if (pair? lstdata)
(append
(list (car (bsort-swap (car lstdata) (cdr lstdata))))
(bsort (cdr (bsort-swap (car lstdata) (cdr lstdata))))
)
lstdata
)
)
)
(define (main args)
(let ((inputlist `(9 0 1 8 2 7 3 6 4 5)))
(print inputlist)
(print (bsort inputlist))
)
)

こんなんでいいのかな?もっとうまく書けそうな気もするが.まあいいか.初日だし.

コメントする