Я хочу, чтобы написать функцию, которая для n
аргументов будет создавать n
списки и каждый из которых содержит п-й элемент для каждого аргумента, например:Создание списков из списков
(aux '(1 2) '(3 4)) = `((1 3) (2 4))
Я написал такую функцию:
(define (aux . args)
(if (null? args)
'()
(cons (map car args)
(aux (map cdr args)))))
но когда я пытаюсь оценить (aux '(1 2) '(3 4))
, REPL не показывает никакого выхода. Мой вопрос в том, что я должен изменить, потому что я не вижу никаких синтаксических ошибок.
Хотя он не затрагивает проблемы в вашем коде, обратите внимание, что это обычно делается с помощью ** (списков списков карт) **. Например, ** (список карт '(1 2)' (3 4)) ** производит ** ((1 3) (2 4)) ** и ** (применять список карт '((1 2) (3 4))) ** производит то же самое. –