JezK
Edit File: Functions-Commands.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <!-- This manual is for GNU Texinfo (version 6.8, 8 June 2021), a documentation system that can produce both online information and a printed manual from a single source using semantic markup. Copyright (C) 1988, 1990-1993, 1995-1999, 2001-2021 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". --> <title>Functions Commands (GNU Texinfo 6.8)</title> <meta name="description" content="Functions Commands (GNU Texinfo 6.8)"> <meta name="keywords" content="Functions Commands (GNU Texinfo 6.8)"> <meta name="resource-type" content="document"> <meta name="distribution" content="global"> <meta name="Generator" content="texi2any"> <meta name="viewport" content="width=device-width,initial-scale=1"> <link href="index.html" rel="start" title="Top"> <link href="Command-and-Variable-Index.html" rel="index" title="Command and Variable Index"> <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> <link href="Def-Cmds-in-Detail.html" rel="up" title="Def Cmds in Detail"> <link href="Variables-Commands.html" rel="next" title="Variables Commands"> <style type="text/css"> <!-- a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em} a.summary-letter {text-decoration: none} blockquote.indentedblock {margin-right: 0em} div.display {margin-left: 3.2em} div.example {margin-left: 3.2em} kbd {font-style: oblique} pre.display {font-family: inherit} pre.format {font-family: inherit} pre.menu-comment {font-family: serif} pre.menu-preformatted {font-family: serif} span.nolinebreak {white-space: nowrap} span.roman {font-family: initial; font-weight: normal} span.sansserif {font-family: sans-serif; font-weight: normal} span:hover a.copiable-anchor {visibility: visible} ul.no-bullet {list-style: none} --> </style> </head> <body lang="en"> <div class="subsection" id="Functions-Commands"> <div class="header"> <p> Next: <a href="Variables-Commands.html" accesskey="n" rel="next">Variables and Similar Entities</a>, Up: <a href="Def-Cmds-in-Detail.html" accesskey="u" rel="up">The Definition Commands</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Command-and-Variable-Index.html" title="Index" rel="index">Index</a>]</p> </div> <hr> <span id="Functions-and-Similar-Entities"></span><h4 class="subsection">13.5.1 Functions and Similar Entities</h4> <p>This section describes the commands for describing functions and similar entities: </p> <dl compact="compact"> <dd><span id="index-deffn"></span> </dd> <dt><span><code>@deffn <var>category</var> <var>name</var> <var>arguments</var>…</code></span></dt> <dd><p>The <code>@deffn</code> command is the general definition command for functions, interactive commands, and similar entities that may take arguments. You must choose a term to describe the category of entity being defined; for example, “Function” could be used if the entity is a function. The <code>@deffn</code> command is written at the beginning of a line and is followed on the same line by the category of entity being described, the name of this particular entity, and its arguments, if any. Terminate the definition with <code>@end deffn</code> on a line of its own. </p> <p>For example, here is a definition: </p> <div class="example"> <pre class="example">@deffn Command forward-char nchars Move point forward @var{nchars} characters. @end deffn </pre></div> <p>This shows a rather terse definition for a “command” named <code>forward-char</code> with one argument, <var>nchars</var>. </p> <p><code>@deffn</code> prints argument names such as <var>nchars</var> in slanted type in the printed output, because we think of these names as metasyntactic variables—they stand for the actual argument values. Within the text of the description, however, write an argument name explicitly with <code>@var</code> to refer to the value of the argument. In the example above, we used ‘<samp>@var{nchars}</samp>’ in this way. </p> <p>In the extremely unusual case when an argument name contains ‘<samp>--</samp>’, or another character sequence which is treated specially (see <a href="Conventions.html">General Syntactic Conventions</a>), use <code>@code</code> around the special characters. This avoids the conversion to typographic en-dashes and em-dashes. </p> <p>The template for <code>@deffn</code> is: </p> <div class="example"> <pre class="example">@deffn <var>category</var> <var>name</var> <var>arguments</var>… <var>body-of-definition</var> @end deffn </pre></div> <span id="index-defun"></span> </dd> <dt><span><code>@defun <var>name</var> <var>arguments</var>…</code></span></dt> <dd><p>The <code>@defun</code> command is the definition command for functions. <code>@defun</code> is equivalent to ‘<samp>@deffn Function …</samp>’. Terminate the definition with <code>@end defun</code> on a line of its own. Thus, the template is: </p> <div class="example"> <pre class="example">@defun <var>function-name</var> <var>arguments</var>… <var>body-of-definition</var> @end defun </pre></div> <span id="index-defmac"></span> </dd> <dt><span><code>@defmac <var>name</var> <var>arguments</var>…</code></span></dt> <dd><p>The <code>@defmac</code> command is the definition command for macros. <code>@defmac</code> is equivalent to ‘<samp>@deffn Macro …</samp>’ and works like <code>@defun</code>. </p> <span id="index-defspec"></span> </dd> <dt><span><code>@defspec <var>name</var> <var>arguments</var>…</code></span></dt> <dd><p>The <code>@defspec</code> command is the definition command for special forms. (In Lisp, a special form is an entity much like a function; see <a data-manual="elisp" href="../elisp/Special-Forms.html#Special-Forms">Special Forms</a> in <cite>GNU Emacs Lisp Reference Manual</cite>.) <code>@defspec</code> is equivalent to ‘<samp>@deffn {Special Form} …</samp>’ and works like <code>@defun</code>. </p></dd> </dl> <p>All these commands create entries in the index of functions. </p> </div> <hr> <div class="header"> <p> Next: <a href="Variables-Commands.html">Variables and Similar Entities</a>, Up: <a href="Def-Cmds-in-Detail.html">The Definition Commands</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Command-and-Variable-Index.html" title="Index" rel="index">Index</a>]</p> </div> </body> </html>