Определить значение в каждой строчке - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д