Программа-схема, которая оценивает список чисел в подмножества

Это моя первая попытка в Scheme, и я, кажется, застрял в конце строки. Эта программа должна взять список чисел, два подмножества и вытащить числа, которые равны одной и той же сумме. т.е.; 5 + 2 = 7 и 4 + 3 = 7. Программа должна напечатать два подмножества {5 2} {4 3} Я получаю сообщение об ошибке "иначе: не разрешено как выражение", и я просто не могу понять Почему. Любые подсказки или направления приветствуются.

(define two-subsets (lambda (list count sum1 sum2)
    (cond ((and (not (= count 0) (= sum1) (= sum2) #t)
    ((null? list) #f)
    ((two-subsets (cdr list) (+ count) (+ sum1) (+ sum2 (car list) #t)
    ((two-subsets (cdr list) (+ count 1) (- sum1) (- sum2 (car list) #t)
    (else (two-subsets (cdr list) count sum1 sum2)))
))))

person wackyred    schedule 29.04.2017    source источник
comment
Посмотрев на ваш код менее 10 секунд, я готов поспорить, что некоторые отступы — в частности, некоторые автоматические отступы drracket — помогут вам понять эту проблему. Кроме того, степпер может быть весьма полезным.   -  person John Clements    schedule 29.04.2017
comment
На самом деле, как вставлено, эта штука вообще не имеет совпадающих скобок. Что-то пошло не так при копипасте?   -  person John Clements    schedule 29.04.2017
comment
Спасибо, Джон! Ваши советы поставили меня на правильный путь. Хотел бы я обвинить копирование и вставку в моей скобке. Более того, я просто не знаю, что делаю, и что скобки не разрешены в этой версии Racket.   -  person wackyred    schedule 30.04.2017