Добавление символу свойств другого символа - Lisp

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

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

Необходимо реализовать функцию (Add(символ1, символ2)), которая бы добавляла символу2 недостающие свойства символа1.

Решение задачи: «Добавление символу свойств другого символа»

textual
Листинг программы
  1. (setf (get 'a 'f) 1)
  2.  
  3. (setf (get 'a 'g) 2)
  4.  
  5. (setf (get 'b 'i) 111)
  6.  
  7. (setf (get 'b 'f) 222)
  8.  
  9. (defun mk-pair (lst)
  10.   (cond ((null lst) nil)
  11.         (t (cons (list (car lst) (cadr lst)) (mk-pair (cddr lst))))))
  12.  
  13. (defun add-props (s1 s2)
  14.   (let ((p-s2 (mk-pair (symbol-plist s2))))
  15.     (mapcar (lambda (x) (unless (get s1 (car x)) (setf (get s1 (car x)) (cadr x)))) p-s2)))
  16.  
  17. (add-props 'a 'b)
  18.  
  19. (symbol-plist 'a)
  20.  
  21. ==> (I 111 G 2 F 1)

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


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

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

13   голосов , оценка 3.923 из 5

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

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

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