引数はリストであり、リストから欠落している最大の番号を抽出しようとしています。
関数でリストを並べ替えましたが、並べ替えられたリストを返すselect
関数を取得するのに苦労しています。select
リストが並べ替えから戻ってきたら、最も高いものと2番目に高いものを差し引いて差を判別し、差が1より大きいかどうかを確認します。
誰かがソートされたリストをSelectedからに戻す方法を教えてもらえますLargestGap
か?
(define (LargestGap L)
(cond ( (null? L) '() )
; ( car (select L))
( (> (- (car(cdr(select L))) (car(select L))) 0) (LargestGap (cdr(select L))))
(- (car(select L)) 1)))
(define (select L)
(cond ( (null? L) '() )
( else
(cons (Largest L (car L))
(select (delete L (Largest L (car L))))))))
(define (delete L A)
(cond ( (null? L) '() )
( (= (car L) A) (cdr L))
(else (cons (car L)(delete (cdr L) A)))))
(define (Largest L A)
(cond ( (null? L) A)
( (> (car L) A) (Largest (cdr L)(car L)))
(else (Largest (cdr L) A ))))