Я ослеп на схеме и чувствую, что, как только я отвечу на этот вопрос, остальная часть моей домашней работы должна идти гладко.
Я определяю функцию, которая принимает список в качестве единственного аргумента, затемвозвращает тот же список с первым элементом, добавленным к остальным.Например:
(addFirst ‘(4 3 2 1)) => (8 7 6 5)
У меня такое чувство, что я должен использовать здесь функции карты и машины ... но я просто не могу понять, что это правильно.Моя текущая версия этого кода выглядит следующим образом:
(define (addlist x) ;adds the first element of a list to all other elements
(define a (car x)) ;a is definitely the first part of the list
(map (+ a) x)
)
Как я могу заставить функцию добавления работать таким образом?Очевидно, я не могу предоставить список в качестве параметра, но должен ли я снова использовать машину или рекурсию?
Хорошо, для потомков, вот полный, правильный, отформатированный код:
(define (addlist x) ;adds the first element of a list to all other elements
(define a (car x)) ;a is definitely the first part of the list
(map (lambda (y) (+ a y)) x)
)