A '''macro''' is any programming or user interface in which an action can be associated with a sequence set of actions that are to be performed in its place. The term can be applied to two distinct categories of things: '''user-interface macros''' allow the user to bind a short sequence of inputs to a longer action, like the `@` command in [vi]. * ''link examples of such in Tk code?'' '''syntactic macros''' occur in the source code of a program, and are used to ''transform'' or ''[code generation%|%generate]'' program code. This is the facility [Lisp] uses to generate new control structures. In Tcl this is accomplished prior to evaluation using commands such as `[string map]` and `[regsub]`. During evaluation, commands such commands as `[uplevel]`, `[upvar]`, and `[tailcall]` accomplish similar functionality. <> Glossary