0
我需要爲Scheme中的類編寫一個函數,在列表中找到最小值和最大值。我們不允許使用內置的最小和最大功能。我找到了一段可以找到最大值和最小值的代碼,但是對於我來說,它輸出了最小值作爲列表的頭部。下面是代碼:在Scheme中實現min/max函數
(define (minmax lst)
(cond
((null? lst) '())
((null? (cdr lst)) (list (car lst) (car lst)))
(else
(let ((mmtemp (minmax (cdr lst))) (first (car lst)))
(cond
((> first (car mmtemp)) (cons first (cdr mmtemp)))
((< first (car mmtemp)) (list (car mmtemp) first))
(else mmtemp))))))
如果我輸入:
(minmax '(3 4 6 9 22 203 1 43 8 4))
我得到:
(203 3)
當我真正需要:
(1 203)
我有沒有經驗計劃和演講幻燈片沒有幫助。需要改變什麼來翻轉輸出順序並獲得正確的最小值?