リストのリストを最初の要素でソートする作業をしています。
(sort(list '(2 1 6 7)'(4 1 2 7) )Iを用い '(1,1))))リストのリストをスキームの最初の要素でソート
期待出力=>('(1) '(2 1 6 7')(4 3 1 2 4 5))
アルゴリズムはバブルでありますソート。そしてリストを扱うように修正しました。ただし、コードはコンパイルされません。エラーは
mcar: contract violation
expected: mpair?
given: 4
です。誰かが自分のコードを修正して説明できますか?ありがとうございます
(define (bubble L)
(if (null? (cdr L))
L
(if (< (car (car L)) (car (cadr L)))
(list (car L)
(bubble (car (cdr L))))
(list (cadr L)
(bubble (cons (car (car L)) (car (cddr L))))))))
(define (bubble-sort N L)
(cond ((= N 1) (bubble L))
(else
(bubble-sort (- N 1) (bubble L)))))
(define (bubble-set-up L)
(bubble-sort (length L) L))
(define t3 (list '(2 1 6 7) '(4 3 1 2 4 5) '(1 2 3) '(1 1)))
(bubble-set-up t3)