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

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

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

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

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

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

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


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

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

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