補助定義
(define (sublist i j list) (if (> 1 j) '() (if (= i 1) (cons (car list)(sublist i (- j 1)(cdr list))) (sublist (- i 1)(- j 1)(cdr list))))) (define (change list i j) (append (sublist 1 (- i 1) list) (sublist j j list) (sublist (+ i 1)(- j 1) list) (sublist i i list) (sublist (+ j 1)(length list) list)))まいそーと
(define (mysort x) (let ((n (length x))) (if (> 1 n) '() (VMk2 1 2 x n)))) (define (Mk2 i j x n) (if (= i n) x (Mk3 i j x n))) (define (Mk3 i j x n) (if (> j n) (Mk2 (+ 1 i)(+ 2 i) x n) (if (< (list-ref x (- i 1))(list-ref x (- j 1))) (Mk3 i (+ 1 j)(change x i j) n) (Mk3 i (+ 1 j) x n))))