aboutsummaryrefslogtreecommitdiffstats
path: root/system/doc/reference_manual
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2013-12-13 11:51:25 +0100
committerBjörn Gustavsson <[email protected]>2013-12-13 11:51:25 +0100
commitfa6407f35c12156a9ed2eb25fb131e1ef5c7f0e4 (patch)
tree86f2b4178f0a15e33d300cf648a0b235252b9990 /system/doc/reference_manual
parentaf17798534de376505498b86525ab8618753ebf7 (diff)
parent4df233adc5a1d5ab54d3c7419a463ae1ef417c12 (diff)
downloadotp-fa6407f35c12156a9ed2eb25fb131e1ef5c7f0e4.tar.gz
otp-fa6407f35c12156a9ed2eb25fb131e1ef5c7f0e4.tar.bz2
otp-fa6407f35c12156a9ed2eb25fb131e1ef5c7f0e4.zip
Merge branch 'nox/eep37/OTP-11537'
* nox/eep37/OTP-11537: Support EEP37 named funs in emacs erlang-mode Document named fun expressions Test named funs Support named funs in the debugger interpreter Update primary bootstrap for named funs in the shell Support named funs in the shell Update primary bootstrap for named funs EEP 37: Funs with names Support non top level letrecs in dialyzer
Diffstat (limited to 'system/doc/reference_manual')
-rw-r--r--system/doc/reference_manual/expressions.xml23
1 files changed, 14 insertions, 9 deletions
diff --git a/system/doc/reference_manual/expressions.xml b/system/doc/reference_manual/expressions.xml
index 0dc6bfe576..e9de3e006e 100644
--- a/system/doc/reference_manual/expressions.xml
+++ b/system/doc/reference_manual/expressions.xml
@@ -954,19 +954,20 @@ Ei = Value |
<title>Fun Expressions</title>
<pre>
fun
- (Pattern11,...,Pattern1N) [when GuardSeq1] ->
- Body1;
+ [Name](Pattern11,...,Pattern1N) [when GuardSeq1] ->
+ Body1;
...;
- (PatternK1,...,PatternKN) [when GuardSeqK] ->
- BodyK
+ [Name](PatternK1,...,PatternKN) [when GuardSeqK] ->
+ BodyK
end</pre>
<p>A fun expression begins with the keyword <c>fun</c> and ends
with the keyword <c>end</c>. Between them should be a function
declaration, similar to a
- <seealso marker="functions#syntax">regular function declaration</seealso>, except that no function name is
- specified.</p>
- <p>Variables in a fun head shadow variables in the
- function clause surrounding the fun expression, and
+ <seealso marker="functions#syntax">regular function declaration</seealso>,
+ except that the function name is optional and should be a variable if
+ any.</p>
+ <p>Variables in a fun head shadow the function name and both shadow
+ variables in the function clause surrounding the fun expression, and
variables bound in a fun body are local to the fun body.</p>
<p>The return value of the expression is the resulting fun.</p>
<p>Examples:</p>
@@ -978,7 +979,11 @@ end</pre>
3> <input>Fun2 = fun (X) when X>=5 -> gt; (X) -> lt end.</input>
#Fun&lt;erl_eval.6.39074546&gt;
4> <input>Fun2(7).</input>
-gt</pre>
+gt
+5> <input>Fun3 = fun Fact(1) -> 1; Fact(X) when X > 1 -> X * Fact(X - 1) end.</input>
+#Fun&lt;erl_eval.6.39074546&gt;
+6> <input>Fun3(4).</input>
+24</pre>
<p>The following fun expressions are also allowed:</p>
<pre>
fun Name/Arity