Как построить список, элементами которого являются суммы соответствующих элементов двух заданных списков в scheme - Lisp

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Помогите с решением задачи Мне нужно получить список, элементами которого являются суммы соответствующих элементов двух заданных списков. У меня получилось написать функцию которая суммирует 2 попарных элемента в новый список. Как суммировать все в один список? Только через рекурсию scheme
(define (fs s1 s2 )
(
if (not (null? s1))
(
 
begin
(display (cons (+ (car s1) (car s2)) '()))
(newline)
(fs (cdr s1) (cdr s2))
)))
 
(display (fs '(3 2 3) '(4 5 6)))
мой вывод (7) (7) (9) , а мне нужно получить вывод (7 7 9) Подскажите пожалуйста как решить задачу

Решение задачи: «Как построить список, элементами которого являются суммы соответствующих элементов двух заданных списков в scheme»

textual
Листинг программы
(define (f lst1 lst2)
 (if (null? lst1) '() (cons (+ (car lst1) (car lst2)) (f (cdr lst1) (cdr lst2)))))
 
(display (f '(1 2 3) '(11 22 33)))

Объяснение кода листинга программы

В данном коде определённая функция с именем f, которая принимает два аргумента типа список (lst1 и lst2). Если lst1 является пустым списком (т.е. null?), то функция возвращает пустой список ('). В противном случае, функция возвращает новый список, в котором первый элемент — это сумма первого элемента lst1 и первого элемента lst2, а остальные элементы являются результатом рекурсивного вызова функции f для оставшейся части lst1 и lst2 (т.е. (cdr lst1) и (cdr lst2)). После определения функции, происходит вызов функции f с двумя аргументами: '(1 2 3) и '(11 22 33). Результат вызова функции (f '(1 2 3) '(11 22 33)) выводится на экран с помощью функции display.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.375 из 5
Похожие ответы