Мне нужно написать функцию pow-incre, которая принимает произвольное количество аргументов и один необязательный параметр. Для каждого аргумента он должен вычислить свою мощность на некоторое число, которое увеличивается для каждого аргумента, начиная с номера 2, или, если поставляется дополнительный аргумент ключевого слова, начинается с этого числа.Необязательный аргумент ключевого слова и множество аргументов
Пример:
> (pow-increase 2 2 2 2) ; 2^2 2^3 2^4 2^5
'(4 8 16 32)
> (pow-increase #start: 1 2 2 2 2) ; 2^1 2^2 2^3 2^4
'(2 4 8 16)
Я уже написал функцию для первого вызова:
(define pow-increase
(lambda argList
(let* ([len (length argList)]
[exponents (range 2 (+ len 2) 1)])
(map (lambda (x) (expt (car x) (car(cdr x)))) (zip argList exponents)))))
Теперь я хотел бы написать вторую версию функции (для второго вызова), но я не знаю, как пройти одновременно произвольное количество аргументов и необязательный аргумент ключевого слова. Я прочитал here Синтаксис для необязательных аргументов: [значение optParamName].
Заранее благодарю вас за помощь.