/usr/share/doc/octave/octave.html/Anonymous-Functions.html is in octave-doc 4.2.2-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Anonymous Functions (GNU Octave)</title>
<meta name="description" content="Anonymous Functions (GNU Octave)">
<meta name="keywords" content="Anonymous Functions (GNU Octave)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="index.html#Top" rel="start" title="Top">
<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Function-Handles-Anonymous-Functions-Inline-Functions.html#Function-Handles-Anonymous-Functions-Inline-Functions" rel="up" title="Function Handles Anonymous Functions Inline Functions">
<link href="Inline-Functions.html#Inline-Functions" rel="next" title="Inline Functions">
<link href="Function-Handles.html#Function-Handles" rel="prev" title="Function Handles">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {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}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
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>
<link rel="stylesheet" type="text/css" href="octave.css">
</head>
<body lang="en">
<a name="Anonymous-Functions"></a>
<div class="header">
<p>
Next: <a href="Inline-Functions.html#Inline-Functions" accesskey="n" rel="next">Inline Functions</a>, Previous: <a href="Function-Handles.html#Function-Handles" accesskey="p" rel="prev">Function Handles</a>, Up: <a href="Function-Handles-Anonymous-Functions-Inline-Functions.html#Function-Handles-Anonymous-Functions-Inline-Functions" accesskey="u" rel="up">Function Handles Anonymous Functions Inline Functions</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Anonymous-Functions-1"></a>
<h4 class="subsection">11.11.2 Anonymous Functions</h4>
<p>Anonymous functions are defined using the syntax
</p>
<div class="example">
<pre class="example">@(<var>argument-list</var>) <var>expression</var>
</pre></div>
<p>Any variables that are not found in the argument list are inherited from
the enclosing scope. Anonymous functions are useful for creating simple
unnamed functions from expressions or for wrapping calls to other
functions to adapt them for use by functions like <code>quad</code>. For
example,
</p>
<div class="example">
<pre class="example">f = @(x) x.^2;
quad (f, 0, 10)
⇒ 333.33
</pre></div>
<p>creates a simple unnamed function from the expression <code>x.^2</code> and
passes it to <code>quad</code>,
</p>
<div class="example">
<pre class="example">quad (@(x) sin (x), 0, pi)
⇒ 2
</pre></div>
<p>wraps another function, and
</p>
<div class="example">
<pre class="example">a = 1;
b = 2;
quad (@(x) betainc (x, a, b), 0, 0.4)
⇒ 0.13867
</pre></div>
<p>adapts a function with several parameters to the form required by
<code>quad</code>. In this example, the values of <var>a</var> and <var>b</var> that
are passed to <code>betainc</code> are inherited from the current
environment.
</p>
<p>Note that for performance reasons it is better to use handles to existing
Octave functions, rather than to define anonymous functions which wrap an
existing function. The integration of <code>sin (x)</code> is 5X faster if the code
is written as
</p>
<div class="example">
<pre class="example">quad (@sin, 0, pi)
</pre></div>
<p>rather than using the anonymous function <code>@(x) sin (x)</code>. There are many
operators which have functional equivalents that may be better choices than an
anonymous function. Instead of writing
</p>
<div class="example">
<pre class="example">f = @(x, y) x + y
</pre></div>
<p>this should be coded as
</p>
<div class="example">
<pre class="example">f = @plus
</pre></div>
<p>See <a href="Operator-Overloading.html#Operator-Overloading">Operator Overloading</a>, for a list of operators which also have a
functional form.
</p>
<hr>
<div class="header">
<p>
Next: <a href="Inline-Functions.html#Inline-Functions" accesskey="n" rel="next">Inline Functions</a>, Previous: <a href="Function-Handles.html#Function-Handles" accesskey="p" rel="prev">Function Handles</a>, Up: <a href="Function-Handles-Anonymous-Functions-Inline-Functions.html#Function-Handles-Anonymous-Functions-Inline-Functions" accesskey="u" rel="up">Function Handles Anonymous Functions Inline Functions</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|