Функції конструктора, Детальна інформація
Функції конструктора
(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)
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021