Вы не можете ссылаться на сам документ в обновлении (пока). Вам нужно будет перебирать документы и обновлять каждый документ с помощью функции. См. этот ответ для примера, или этот для серверной стороны eval()
.
Так как RPN также известен как постфиксная запись, я пытался гуглить, преобразовывают "постфикс для инфиксирования" и получил довольно много результатов. Первые несколько имеют примеры кода, но я нашел запись RubyQuiz особенно поучительной.
Если Вы не будете волноваться по поводу раскрытия избыточных скобок, то следующий код Lisp будет работать:
(defun rpn-to-inf (pre)
(if (atom pre)
pre
(cond ((eq (car (last pre)) 'setf)
(list (rpn-to-inf (first pre)) '= (rpn-to-inf (second pre))))
((eq (car (last pre)) 'expt)
(list (rpn-to-inf (first pre)) '^ (rpn-to-inf (second pre))))
(t (list (rpn-to-inf (first pre))
(car (last pre))
(rpn-to-inf (second pre)))))))