Ответ 1
Это довольно сложные конструкции, и трудно дать ясные объяснения; они не так просты, как макросы Lisp (или, если на то пошло, отношения между Lisp QUOTE
и EVAL
). Тем не менее, есть хорошая, продолжительная дискуссия, доступная в виде заметки из журнала Robby Villegas 1999 "Неоценимые выражения" на веб-сайте Wolfram.
Defer
опускается из этого разговора, потому что он новый, как в Mathematica 6.0. Это очень похоже на HoldForm
, за исключением того, что когда он выводится в интерфейсе (но не в голом ядре), он удаляется, оставляя выражение, которое может использоваться как входное. Это очень полезно, если вы хотите программно построить выражения, которые пользователь может редактировать и оценивать, скажем, в палитре.