Что не так со следующей схемой кода? - PullRequest
2 голосов
/ 14 октября 2011

Что не так с этой функцией?

(define (get-two-largest a b c)
  (cond ((and (>= a b) (>= a c)) (if (> b c) (list a b) (list a c))))
  (cond ((and (>= b a) (>= b c)) (if (> a c) (list b a) (list b c))))
  (cond ((and (>= c a) (>= c b)) (if (> a b) (list c a) (list c b))))

Он ничего не возвращает, когда я передаю аргументы 3 5 4 в указанном порядке.

1 Ответ

3 голосов
/ 14 октября 2011

Зачем использовать cond, если вы положили в него только одну ветвь?

(define (get-two-largest a b c)
  (cond ((and (>= a b) (>= a c)) (if (> b c) (list a b) (list a c)))
        ((and (>= b a) (>= b c)) (if (> a c) (list b a) (list b c)))
        ((and (>= c a) (>= c b)) (if (> a b) (list c a) (list c b)))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...