List 在Scheme中查找列表的最大值和最小值

List 在Scheme中查找列表的最大值和最小值,list,scheme,racket,List,Scheme,Racket,我需要找到列表的最大值和最小值,然后添加一个新列表。这是我目前的代码: (define alist '(18 39 57 -4 0) (define (nMax alist) (if (null? (cdr alist)) (car alist) (if (> (car alist) (nMax (cdr alist))) (car alist) (nMax (cdr alist))))) (define (nMin

我需要找到列表的最大值和最小值,然后添加一个新列表。这是我目前的代码:

(define alist '(18 39 57 -4 0)

(define (nMax alist)
  (if (null? (cdr alist))
      (car alist)
      (if (> (car alist) (nMax (cdr alist)))
          (car alist)
          (nMax (cdr alist)))))

(define (nMin alist)
  (if (null? (cdr alist))
      (car alist)
      (if (< (car alist) (nMin (cdr alist)))
          (car alist)
          (nMin (cdr alist)))))
类似于
(cons(nMax-alist)(cons(nMin-alist)'))

尝试以下方法:

(define alist '(18 39 57 -4 0))

(define (max-min alist)
  (list (nMax alist)
        (nMin alist)))

(max-min alist)
> '(57 -4)

你想要两个元素在同一个列表中,还是两个元素的总和?是的,我想要它们在同一个列表中
(define alist '(18 39 57 -4 0))

(define (max-min alist)
  (list (nMax alist)
        (nMin alist)))

(max-min alist)
> '(57 -4)