Мова програмування Лiсп
(SET 'car 'road) Val(car) = road Val(road) = road
(SET car flower) Val(car) = road Val(road) = flowerVal(flower) = flower
(SET 'car car) Val(car) = road Val(road) = flowerVal(flower) = flower
(SET road car) Val(car) = road Val(road) = flowerVal(flower) = road
(SET 'road 4) Val(car) = road Val(road) = 4Val(flower) = road
(SET road 'hen)помилка, 4 не є символом i не може приймати iншi значення
POP повертає голову списка (вершину стека) i замiнює значення symbol на його хвiст. PUSH кладе в стек та змiнює його значення на збiльшений стек.
$ (SETQ a '(q w e r t))Val(a) = (q w e r t)
$ (POP a)Val(a) = (w e r t)
$ (PUSH 'n a)Val(a) = (n w e r t)
Завдання
I Варiант завдань
1. Побудувати список, який задовiльняє наступним умовам:
а) мiстить два пiдсписки, перший з яких має три атоми, а другий - чотири атоми;
б) мiстить три атоми, але його хвiст дорiвнює NIL;
в) мiстить три складенi об'єкти, i лише його другий елемент є атомом;
г) голова списку мiстить три атоми, а кiлькiсть атомiв в усьому списку дорiвнює 3.
д) мiстить тiльки порожнiй список, а голова списку не є атомом.
е) голова та хвiст є списками з пiдсписками.
2. Що буде в результатi обчислення наступних виразiв:
a) (CONS NIL NIL) г) (ATOM (CDR '(q NIL)))б) (CONS (CAR '((q w))) (CDR '((q (w e))))) д) (EQL NIL 'NIL)
в) (EQL (CDR '(q)) NIL) е) (PUSH nil nil) (EQL (ATOM '(q w)) nil)
3. Скласти вираз, який би за вхiдними даними побудував би заданий результат.
a) дано: (A, B, C), (X, Y, Z). побудувати: (A, Y, Z).
б) дано: ((one 1) (two 2 3) (three 4 5 6)) побудувати: 5.