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

Lu *_*Yas 2 scheme list 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 alist)
  (if (null? (cdr alist))
      (car alist)
      (if (< (car alist) (nMin (cdr alist)))
          (car alist)
          (nMin (cdr alist)))))
Run Code Online (Sandbox Code Playgroud)

现在我被卡住了.我怎样才能在新列表中添加nMin+ nMax?我的输出应该是这样的:

'(57 -4)
Run Code Online (Sandbox Code Playgroud)

Ósc*_*pez 6

试试这个:

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

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

(max-min alist)
> '(57 -4)
Run Code Online (Sandbox Code Playgroud)