Closures/Value capture: Difference between revisions

Content added Content deleted
(Added LFE example)
Line 740: Line 740:
</pre>
</pre>


=={{header|LFE}}==

Input at the REPL:
<lang lisp>
> (set funcs (list-comp ((<- m (lists:seq 1 10)))
(lambda () (math:pow m 2))))
</lang>

Output:
<lang lisp>
(#Fun<lfe_eval.23.101079464> #Fun<lfe_eval.23.101079464>
#Fun<lfe_eval.23.101079464> #Fun<lfe_eval.23.101079464>
#Fun<lfe_eval.23.101079464> #Fun<lfe_eval.23.101079464>
#Fun<lfe_eval.23.101079464> #Fun<lfe_eval.23.101079464>
#Fun<lfe_eval.23.101079464> #Fun<lfe_eval.23.101079464>)
</lang>

Calling the functions:
<lang lisp>
> (funcall (car funcs))
1.0
> (funcall (cadr funcs))
4.0
> (funcall (cadddr funcs))
16.0
> (funcall (lists:nth 8 funcs))
64.0

</lang>
=={{header|Logtalk}}==
=={{header|Logtalk}}==
The example that follow uses Logtalk's native support for lambda expressions.
The example that follow uses Logtalk's native support for lambda expressions.