Mathematica: Nieoceniony vs Odroczony vs Trzymaj vs HoldForm vs HoldAllComplete vs itd

Jestem oszołomiony wszystkimi wbudowanymi funkcjami Mathematica, które w jakiś sposób uniemożliwiają ocenę:Unevaluated, Defer, Holdi ponad pół tuzina formularzaHold*. Dokumentacja Mathematica wyjaśnia po prostu każdą funkcję w izolacji, nie wyjaśniając, dlaczego wybierzesz jedną lub drugą. Czy ktoś może przedstawić spójne wyjaśnienie wszystkich tych funkcji? Cała ta sprawa wydaje mi się skomplikowana. Odniesienie tego wszystkiego do makr Lisp może być dobrym miejscem do rozpoczęcia.

Większość języka Mathematica jest niesamowicie dobrze zaprojektowana, ale wydaje się, że Wolfram naprawdę pomalował się w ten aspekt. Albo mógłbym czegoś przegapić.

questionAnswers(1)

yourAnswerToTheQuestion