在 Scheme 中查找列表的最大值和最小值,您可以通过以下方式实现:
max
和 min
函数查找列表的最大值和最小值(max (list x y z) (min (list x y z)))
car
和 cdr
函数遍历列表以查找最大值和最小值(define (find-max-min list)
(if (null? list)
'error
(let ((max-value (car list))
(min-value (car (cdr list))))
(if (not (null? (cdr list)))
(find-max-min (cdr list))
(set! max-value (cdr list))
(set! min-value (cdr (cdr list))))
(if (not (null? max-value))
(set! min-value (min min-value max-value))
(set! min-value max-value))
(list min-value max-value))))
for
循环遍历列表以查找最大值和最小值(define (find-max-min list)
(if (null? list)
'error
(let ((max-value (list (car list))))
(if (not (null? (cdr list)))
(find-max-min (cdr list))
(set! max-value (cdr list))))
(if (not (null? max-value))
(set! max-value (max (car max-value) (car (cdr max-value))))
(set! max-value (car list)))
(list max-value (car list))))
以上三种方法都可以在 Scheme 中查找列表的最大值和最小值。第一种方法使用 max
和 min
函数,第二种方法使用 car
和 cdr
函数,第三种方法使用 for
循环。
领取专属 10元无门槛券
手把手带您无忧上云