У меня проблемы с добавлением списка в этой функции схемы.
Функция должна принимать 2 аргумента и возвращать список, состоящий из 2-х элементов, количество раз указанное в 1-м элементе. Например, если вы звоните (make-list? 5 4)
, ваш вывод должен быть (4 4 4 4 4)
.
Проблема в том, что когда я использую cons
, я получаю ((((4 . 4) . 4) . 4) . 4)
. Насколько я понимаю, я добавляю в конец всего списка как объект каждый раз, не последний элемент этого, как я хочу . Я не уверен, как это исправить.
Вот моя функция, предложения о том, как использовать последний элемент вместо списка в качестве объекта, было бы здорово. (или другие предложения, если это не единственная / реальная проблема.)
;make-list
(define make-list?
(lambda (N A)
(if (= N 1)
A
(cons (make-list?(- N 1) A ) A)
)
)
)