Функції конструктора
Функції конструктора
Тип документу: Реферат
Сторінок: 5
Предмет: Компьютерные науки
Автор: Олексій
Розмір: 8.1
Скачувань: 1086
(SUBST-IF new test object). Повертає копію високого рівня об’єкта object, замінюючи на нові new елементи усі підвирази об’єкта, для яких ознака перевірки за тестом не є NIL.
(DEFUN SUBST (NEW OLD OBJ TEST)
( (NULL TEST)
(SETQ TEST 'EQL) ) )
((FUNCALL TEST OLD OBJ) NEW)
((ATOM OBJ) OBJ)
(LET ( (LEFT (SUBST NEW OLD (CAR OBJ) TEST))
(RIGHT (SUBST NEW OLD (CDR OBJ) TEST)) )
((AND (EQ LEFT (CAR OBJ)) (EQ RIGHT (CDR OBJ)))
OBJ )
(CONS LEFT RIGHT) ) )
$ (SUBST 5 2 '(4 2 (3 . 2) 4))
(4 5 (3 . 5) 4)
(DEFUN SUBST (NEW OLD OBJ TEST)
( (NULL TEST)
(SETQ TEST 'EQL) ) )
((FUNCALL TEST OLD OBJ) NEW)
((ATOM OBJ) OBJ)
(LET ( (LEFT (SUBST NEW OLD (CAR OBJ) TEST))
(RIGHT (SUBST NEW OLD (CDR OBJ) TEST)) )
((AND (EQ LEFT (CAR OBJ)) (EQ RIGHT (CDR OBJ)))
OBJ )
(CONS LEFT RIGHT) ) )
$ (SUBST 5 2 '(4 2 (3 . 2) 4))
(4 5 (3 . 5) 4)