Общая рекурсия - Lisp

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

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

Здравствуйте. Есть вот такое задание:
Даны два списка одинаковой структуры. Построить список такой же структуры, состоящий из пар элементов. ((A B(B)C)D) , ((1 C (2)3)4) —>—>(((A 1) (B C)((B 2))(C 3))(D 4))
Его нужно реализовать общей рекурсией, а до меня не доходит как.

Решение задачи: «Общая рекурсия»

textual
Листинг программы
  1. (defun cs (w v &aux (a (car w)) (b (car v)))
  2.   (when w (cons (cs- a b) (cs (cdr w) (cdr v)))))
  3.  
  4. (defun cs- (a b) (if (atom a) `(,a ,b) (cs a b)))
  5.  
  6. > (cs '((A B(B)C)D) '((1 C (2)3)4))
  7. (((A 1) (B C) ((B 2)) (C 3)) (D 4))

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


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

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

9   голосов , оценка 3.889 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут