Я новичок в Scheme и пытаюсь написать процедуру, которая объединяет список n в список кортежей n. Если списки имеют разный размер, кортежи должны содержать пустой список ()
, когда в соответствующем списке заканчиваются элементы.
Моя текущая реализация следующая:
(define (comb list1 list2)
(cond [(empty? list1) empty]
[(empty? list2) empty]
[else (cons (list (first list1) (first list2))
(comb (rest list1) (rest list2)))]))
Однако эта программа не создает другой кортеж, если в списке больше нет элементов для объединения. Например, (comb '(1 2 3 ) '(3 4))
производит только ((1 3) (2 4))
Как мне это решить?