created: 20221007132845007 modified: 20221019081352266 tags: Pragmas title: Pragma: \procedure type: text/vnd.tiddlywiki <<.from-version "5.3.0">> The ''\procedure'' [[pragma|Pragmas]] is used to [[define procedures|Procedure Definitions]]. It is a shortcut syntax for the SetVariableWidget with an implicit ParametersWidget. The usual form allows procedures to span multiple lines: ``` \procedure ([:],[:]...) \end ``` There is also a single line form for shorter procedures: ``` \define ([:],[:]...) ``` The first line of the definition specifies the procedure name and any parameters. Each parameter has a name and, optionally, a default value that is used if no value is supplied on a particular call to the procedure. The lines that follow contain the text of the procedure text (i.e. the snippet represented by the procedure name), until `\end` appears on a line by itself: For example: ``` \procedure sayhi(name:"Bugs Bunny") Hi, I'm $name$. \end <> ``` Alternatively, the entire definition can be presented on a single line without an `\end` marker: ``` \procedure sayhi(name:"Bugs Bunny") Hi, I'm $name$. ```