Viewing File: /usr/share/doc/texinfo/html/Functions-Commands.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for GNU Texinfo (version 6.7, 23 September 2019),
a documentation system that can produce both online information and a
printed manual from a single source using semantic markup.

Copyright (C) 1988, 1990, 1991, 1992, 1993, 1995, 1996, 1997,
1998, 1999, 2001, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 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". -->
<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Functions Commands (GNU Texinfo 6.7)</title>

<meta name="description" content="Functions Commands (GNU Texinfo 6.7)">
<meta name="keywords" content="Functions Commands (GNU Texinfo 6.7)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="texi2any">
<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">
<link href="Def-Cmds-in-Detail.html" rel="prev" title="Def Cmds in Detail">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {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}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en">
<span id="Functions-Commands"></span><div class="header">
<p>
Next: <a href="Variables-Commands.html" accesskey="n" rel="next">Variables Commands</a>, Up: <a href="Def-Cmds-in-Detail.html" accesskey="u" rel="up">Def Cmds in Detail</a> &nbsp; [<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">14.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><code>@deffn <var>category</var> <var>name</var> <var>arguments</var>&hellip;</code></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, &ldquo;Function&rdquo; 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 &ldquo;command&rdquo; 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&mdash;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 &lsquo;<samp>@var{nchars}</samp>&rsquo; in this way.
</p>
<p>In the extremely unusual case when an argument name contains
&lsquo;<samp>--</samp>&rsquo;, or another character sequence which is treated specially
(see <a href="Conventions.html">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>&hellip;
<var>body-of-definition</var>
@end deffn
</pre></div>

<span id="index-defun"></span>
</dd>
<dt><code>@defun <var>name</var> <var>arguments</var>&hellip;</code></dt>
<dd><p>The <code>@defun</code> command is the definition command for functions.
<code>@defun</code> is equivalent to &lsquo;<samp>@deffn Function &hellip;</samp>&rsquo;.
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>&hellip;
<var>body-of-definition</var>
@end defun
</pre></div>

<span id="index-defmac"></span>
</dd>
<dt><code>@defmac <var>name</var> <var>arguments</var>&hellip;</code></dt>
<dd><p>The <code>@defmac</code> command is the definition command for macros.
<code>@defmac</code> is equivalent to &lsquo;<samp>@deffn Macro &hellip;</samp>&rsquo; and
works like <code>@defun</code>.
</p>
<span id="index-defspec"></span>
</dd>
<dt><code>@defspec <var>name</var> <var>arguments</var>&hellip;</code></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 href="../elisp/Special-Forms.html#Special-Forms">Special Forms</a> in <cite>GNU Emacs Lisp Reference Manual</cite>.)
<code>@defspec</code> is equivalent to &lsquo;<samp>@deffn {Special Form}
&hellip;</samp>&rsquo; and works like <code>@defun</code>.
</p></dd>
</dl>

<p>All these commands create entries in the index of functions.
</p>

<hr>
<div class="header">
<p>
Next: <a href="Variables-Commands.html" accesskey="n" rel="next">Variables Commands</a>, Up: <a href="Def-Cmds-in-Detail.html" accesskey="u" rel="up">Def Cmds in Detail</a> &nbsp; [<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>
Back to Directory File Manager