参数是一个列表,我试图从列表中提取最大的缺失数。
我已经对函数中的列表进行了排序select
,但是我很难让函数select
返回排序后的列表。当列表从排序返回时,我减去最高和第二高以确定差异并检查差异是否大于 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 ))))