В настоящее время я работаю над LISP для небольшого проекта и мне нужна серьезная помощь. Это может быть в большей или меньшей степени вопрос новичка, но я совершенно заблудился при написании определенной функции, которая принимает две неоцененные функции и выдает результат в зависимости от того, были ли переменные присвоены или нет.
Примером будет
(setq p1 '(+ x (* x (- y (/ z 2)))))
Где
(evalexp p1 '( (x 2) (z 8) ))
returns (+ 2 (* 2 (- y 4)))
Моя цель - написать функцию evalexp, но я даже не могу придумать, с чего начать.
Пока у меня есть
(defun evalexp (e b) )
.. не очень. Если бы кто-нибудь мог помочь или направить меня в правильном направлении, я был бы более чем благодарен.