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