Closures/Value capture: Difference between revisions
Content added Content deleted
Line 249: | Line 249: | ||
{{out}} |
{{out}} |
||
<pre>[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]</pre> |
<pre>[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]</pre> |
||
=={{header|Erlang}}== |
|||
Erlang uses lexical scoping and has anonymous functions. |
|||
<lang erlang> |
|||
-module(capture_demo). |
|||
-export([demo/0]). |
|||
demo() -> |
|||
Funs = lists:map(fun (X) -> |
|||
fun () -> |
|||
X * X |
|||
end |
|||
end, |
|||
lists:seq(1,10)), |
|||
lists:foreach(fun (F) -> |
|||
io:fwrite("~B~n",[F()]) |
|||
end, Funs). |
|||
</lang> |
|||
<pre> |
|||
1> capture_demo:demo(). |
|||
1 |
|||
4 |
|||
9 |
|||
16 |
|||
25 |
|||
36 |
|||
49 |
|||
64 |
|||
81 |
|||
100 |
|||
ok |
|||
</pre> |
|||
=={{header|Factor}}== |
=={{header|Factor}}== |