Определить значение в каждой строчке - Lisp
Формулировка задачи:
}Я совсем запуталась, очень важная контрольная
1.1. (Defun Izm(x) (Setq x 'новое)) ->
(Setq x 'старое) ->
(Izm x) ->
x->
Старое->
(Izm 'x) ->
x->
1.2. (Defun Izm(x) (Set x 'новое))->
(Setq x 'старое) ->
(Izm x) ->
x ->
Старое->
(Izm 'x)->
x->
2.
1.1. (Defun Izm(x) (Eval 'x)) ->
(Setq x 'старое) ->
(Izm 'новое) ->
x ->
(Izm 'x) ->
x ->
(Izm x) ->
x ->
1.2. (Defun Izm(x) (Eval x)) ->
(Setq x 'старое) ->
(Izm 'новое) ->
x->
(Izm 'x) ->
x ->
(Izm x) ->
x ->
(Setq новое 8)->
(Izm 'новое) ->
(Setq старое 5) ->
(Izm x) ->Решение задачи: «Определить значение в каждой строчке»
[1]> (defun izm(x) (setq x 'новое)) IZM [2]> (setq x 'старое) СТАРОЕ [3]> (izm x) НОВОЕ [4]> x СТАРОЕ [5]> Старое *** - SYSTEM::READ-EVAL-PRINT: variable СТАРОЕ has no value Имеются следующие варианты продолжения: USE-VALUE :R1 Input a value to be used instead of СТАРОЕ. STORE-VALUE :R2 Input a new value for СТАРОЕ. ABORT :R3 Прервать главный цикл Break 1 [6]> [7]> (izm 'x) НОВОЕ [8]> x СТАРОЕ [9]> (defun izm(x) (set x 'новое)) IZM [10]> (setq x 'старое) СТАРОЕ [11]> (izm x) НОВОЕ [12]> x СТАРОЕ [13]> Старое НОВОЕ [14]> (izm 'x) НОВОЕ [15]> x НОВОЕ [16]> (defun izm(x) (eval 'x)) IZM [17]> (setq x 'старое) СТАРОЕ [18]> (izm 'новое) СТАРОЕ [19]> x СТАРОЕ [20]> (izm 'x) СТАРОЕ [21]> x СТАРОЕ [22]> (izm x) СТАРОЕ [23]> x СТАРОЕ [24]> (defun izm(x) (eval x)) IZM [25]> (setq x 'старое) СТАРОЕ [26]> (izm 'новое) *** - EVAL: variable НОВОЕ has no value Имеются следующие варианты продолжения: USE-VALUE :R1 Input a value to be used instead of НОВОЕ. STORE-VALUE :R2 Input a new value for НОВОЕ. ABORT :R3 Прервать главный цикл Break 1 [27]> [28]> x СТАРОЕ [29]> (izm 'x) СТАРОЕ [30]> x СТАРОЕ [31]> (izm x) НОВОЕ [32]> x СТАРОЕ [33]> (setq новое 8) 8 [34]> (izm 'новое) 8 [35]> (setq старое 5) 5 [36]> (izm x) 5
Объяснение кода листинга программы
[1]> (defun izm(x) (setq x 'новое)) IZM [2]> (setq x 'старое) СТАРОЕ [3]> (izm x) НОВОЕ [4]> x СТАРОЕ [5]> - SYSTEM::READ-EVAL-PRINT: variable СТАРОЕ has no value Имеются следующие варианты продолжения: USE-VALUE :R1 Input a value to be used instead of СТАРОЕ. STORE-VALUE :R2 Input a new value for СТАРОЕ. ABORT :R3 Прервать главный цикл Break 1 [6]> [7]> (izm 'x) НОВОЕ [8]> x СТАРОЕ [9]> (defun izm(x) (set x 'новое)) IZM [10]> (setq x 'старое) СТАРОЕ [11]> (izm x) НОВОЕ [12]> x СТАРОЕ [13]> - SYSTEM::READ-EVAL-PRINT: variable СТАРОЕ has no value Имеются следующие варианты продолжения: USE-VALUE :R1 Input a value to be used instead of СТАРОЕ. STORE-VALUE :R2 Input a new value for СТАРОЕ. ABORT :R3 Прервать главный цикл Break 1 [14]> [15]> (izm 'x) НОВОЕ [16]> x СТАРОЕ [17]> (defun izm(x) (eval 'x)) IZM [18]> (setq x 'старое) СТАРОЕ [19]> (izm 'новое) СТАРОЕ [20]> x СТАРОЕ [21]> (izm x) СТАРОЕ [22]> x СТАРОЕ [23]> - EVAL: variable НОВОЕ has no value Имеются следующие варианты продолжения: USE-VALUE :R1 Input a value to be used instead of НОВОЕ. STORE-VALUE :R2 Input a new value for НОВОЕ. ABORT :R3 Прервать главный цикл Break 1 [24]> [25]> (izm 'x) - EVAL: variable НОВОЕ has no value Имеются следующие варианты продолжения: USE-VALUE :R1 Input a value to be used instead of НОВОЕ. STORE-VALUE :R2 Input a new value for НОВОЕ. ABORT :R3 Прервать главный цикл Break 1 [26]> [27]> x СТАРОЕ [28]> (izm 'x) СТАРОЕ [29]> x СТАРОЕ [30]> (izm x) НОВОЕ [31]> (setq новое 8) 8 [32]> (izm 'новое) 8 [33]> (setq старое 5) 5 [34]> (izm x) 5 [35]> x 5