Допустим, у меня есть процедура foo, которая принимает три аргумента и возвращает их список, удвоенный:
(define (foo a b c)
(list (* 2 a ) (* 2 b) (* 2 c)))
Что я хотел бы сделать, так это создать еще одну процедуру, которая принимает список и вызывает foo, используя элементы списка в качестве аргументов, например:
(define (fooInterface myList)
...)
(fooInterface (list 1 2 3))
Загвоздка в том, что я не хочу писать fooInterface, предполагая, что foo всегда будет иметь 3 аргумента. То есть, если я добавлю в foo дополнительный аргумент, fooInterface все равно должен работать, если переданный список содержит 3 элемента.