Добавление символу свойств другого символа - Lisp
Формулировка задачи:
Необходимо реализовать функцию (Add(символ1, символ2)), которая бы добавляла символу2 недостающие свойства символа1.
Решение задачи: «Добавление символу свойств другого символа»
textual
Листинг программы
(setf (get 'a 'f) 1) (setf (get 'a 'g) 2) (setf (get 'b 'i) 111) (setf (get 'b 'f) 222) (defun mk-pair (lst) (cond ((null lst) nil) (t (cons (list (car lst) (cadr lst)) (mk-pair (cddr lst)))))) (defun add-props (s1 s2) (let ((p-s2 (mk-pair (symbol-plist s2)))) (mapcar (lambda (x) (unless (get s1 (car x)) (setf (get s1 (car x)) (cadr x)))) p-s2))) (add-props 'a 'b) (symbol-plist 'a) ==> (I 111 G 2 F 1)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д