2012-04-19 5 views
2

Мне нужно найти максимальный и минимальный список, а затем добавить новый список. Это мой код:Новичок: нужна помощь в списках в схеме

(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))))) 

и теперь я застрял. Как я могу добавить nMin + nMax в новый список? Мой вывод должен быть чем-то вроде этого:

'(57 -4) 
+0

вы хотите, эти два элемента в одном списке, или сумма двух элементов? – Jordan

+0

да я хочу их в том же списке –

ответ

6

Попробуйте это:

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

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

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

спасибо, что это сработало –

0

Что-то вроде (cons (nMax alist) (cons (nMin alist) '()))

Смежные вопросы