Mathematica: Неоцененный против отсрочки против удержания против HoldForm против HoldAllComplete против и т. Д. И т. Д.

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

Большая часть языка Mathematica удивительно хорошо разработана, но кажется, что Вольфрам действительно загнал себя в угол в этом аспекте. Или я мог что-то упустить.

Ответы на вопрос(1)

Ваш ответ на вопрос