1
0
Fork 0
cl-sites/guile.html_node/About-Closure.html
2024-12-17 12:49:28 +01:00

85 lines
3.8 KiB
HTML

<!DOCTYPE html>
<html>
<!-- Created by GNU Texinfo 7.1, https://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- This manual documents Guile version 3.0.10.
Copyright (C) 1996-1997, 2000-2005, 2009-2023 Free Software Foundation,
Inc.
Copyright (C) 2021 Maxime Devos
Copyright (C) 2024 Tomas Volf
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, no Front-Cover Texts, and no Back-Cover Texts. A
copy of the license is included in the section entitled "GNU Free
Documentation License." -->
<title>About Closure (Guile Reference Manual)</title>
<meta name="description" content="About Closure (Guile Reference Manual)">
<meta name="keywords" content="About Closure (Guile Reference Manual)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content=".texi2any-real">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link href="index.html" rel="start" title="Top">
<link href="Concept-Index.html" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Hello-Scheme_0021.html" rel="up" title="Hello Scheme!">
<link href="Further-Reading.html" rel="next" title="Further Reading">
<link href="About-Expressions.html" rel="prev" title="About Expressions">
<style type="text/css">
<!--
a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
span:hover a.copiable-link {visibility: visible}
-->
</style>
<link rel="stylesheet" type="text/css" href="https://www.gnu.org/software/gnulib/manual.css">
</head>
<body lang="en">
<div class="section-level-extent" id="About-Closure">
<div class="nav-panel">
<p>
Next: <a href="Further-Reading.html" accesskey="n" rel="next">Further Reading</a>, Previous: <a href="About-Expressions.html" accesskey="p" rel="prev">Expressions and Evaluation</a>, Up: <a href="Hello-Scheme_0021.html" accesskey="u" rel="up">Hello Scheme!</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<h3 class="section" id="The-Concept-of-Closure"><span>3.4 The Concept of Closure<a class="copiable-link" href="#The-Concept-of-Closure"> &para;</a></span></h3>
<a class="index-entry-id" id="index-closure"></a>
<p>The concept of <em class="dfn">closure</em> is the idea that a lambda expression
&ldquo;captures&rdquo; the variable bindings that are in lexical scope at the
point where the lambda expression occurs. The procedure created by the
lambda expression can refer to and mutate the captured bindings, and the
values of those bindings persist between procedure calls.
</p>
<p>This section explains and explores the various parts of this idea in
more detail.
</p>
<ul class="mini-toc">
<li><a href="About-Environments.html" accesskey="1">Names, Locations, Values and Environments</a></li>
<li><a href="Local-Variables.html" accesskey="2">Local Variables and Environments</a></li>
<li><a href="Chaining.html" accesskey="3">Environment Chaining</a></li>
<li><a href="Lexical-Scope.html" accesskey="4">Lexical Scope</a></li>
<li><a href="Closure.html" accesskey="5">Closure</a></li>
<li><a href="Serial-Number.html" accesskey="6">Example 1: A Serial Number Generator</a></li>
<li><a href="Shared-Variable.html" accesskey="7">Example 2: A Shared Persistent Variable</a></li>
<li><a href="Callback-Closure.html" accesskey="8">Example 3: The Callback Closure Problem</a></li>
<li><a href="OO-Closure.html" accesskey="9">Example 4: Object Orientation</a></li>
</ul>
</div>
</body>
</html>