Пропадают локальные переменные функции после первого запуска функции - Lisp
Формулировка задачи:
Я написал код для расчёта электрического кольца. Я постепенно упрощаю схему параллельными и последовательными операциями. Вот мой код:
Проблема состоит в следующем: я запускаю первый раз функцию sch1 и она отрабатывает, а после второго запуска функция выдаёт ошибку. Вот листинг:
Возможно я неправильно оглашаю локальные переменные?
( defun pos ( R1 R2 ) (+ R1 R2 ) )
( defun par (R1 R2 ) ( / ( * R1 R2 ) ( + R1 R2 ) ) )
( defun sch1 (R1 R2 R3 R4 R5 R6 R7)
( defvar R56 ( par R5 R6 ) )
( defvar R24 ( pos R2 R4 ) )
( defvar R2456 ( pos R24 R56 ) )
( defvar R37 ( pos R3 R7 ) )
( defvar R234567 ( par R2456 R37 ) )
( defvar R1234567 ( pos R1 R234567 ) )
R1234567 )( sch1 10 10 10 10 10 10 10 ) ==> 21.1111111111111 ( sch1 10 10 10 10 10 10 10 ) Assoc: Символ R24 не имеет значения (не связан). ==> ERRSTATE
Решение задачи: «Пропадают локальные переменные функции после первого запуска функции»
textual
Листинг программы
(defun par (r1 r2) (/ (* r1 r2) (+ r1 r2))) (defun sch1 (r1 r2 r3 r4 r5 r6 r7) (float (+ r1 (par (+ r2 r4 (par r5 r6)) (+ r3 r7))))) > (sch1 10 10 10 10 10 10 10) 21.11111