У меня небольшие проблемы с заданием. Я должен создать процедуру, которая запрашивает список списков и элемент, и переходит к добавлению элемента в первую позицию в каждом подсписке. Мне удалось сделать это, и это выглядит следующим образом:Вставить элемент в начало списка в списке списков
(define (add-element lst elem)
(foldr cons lst (list elem)))
(define (insert-first lst1 x)
(cond
[(empty? lst1) empty]
[else (local [(define insert (add-element(first lst1) x))]
(cons insert (insert-first (rest lst1) x)))]))
Так что, если вы должны были ввести (insert-first '((a b) (c d))
вы в конечном итоге с (list (list 'x 'a 'b) (list 'x 'c 'd))
Единственная проблема заключается в том, что я должен кодировать процедуру с использованием map
и local
. Последний, по-моему, я сделал, но я не могу на всю жизнь понять, как использовать map
.
Сделали вы какой-либо прогресс по этой проблеме? –