Я сбив с толку всеми встроенными функциями Mathematica, которые якобы препятствуют оценке: Unevaluated, Defer, Hold и более полудюжины формы Hold*. Документация Mathematica просто объясняет каждую функцию отдельно, не объясняя, почему вы выбрали тот или иной. Может ли кто-нибудь предложить последовательное объяснение всех этих функций? Все это кажется мне запутанным беспорядком. Все это может быть связано с макросами Lisp.
Большая часть языка Mathematica удивительно хорошо разработана, но похоже, что Вольфрам действительно нарисовал себя в этом вопросе. Или я мог что-то пропустить.