1
0
Fork 0
cl-sites/guile.html_node/Association-Lists.html

102 lines
4.5 KiB
HTML
Raw Normal View History

2024-12-17 12:49:28 +01:00
<!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>Association Lists (Guile Reference Manual)</title>
<meta name="description" content="Association Lists (Guile Reference Manual)">
<meta name="keywords" content="Association Lists (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="Data-Types.html" rel="up" title="Data Types">
<link href="VHashes.html" rel="next" title="VHashes">
<link href="Dictionary-Types.html" rel="prev" title="Dictionary Types">
<style type="text/css">
<!--
a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
div.example {margin-left: 3.2em}
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="subsection-level-extent" id="Association-Lists">
<div class="nav-panel">
<p>
Next: <a href="VHashes.html" accesskey="n" rel="next">VList-Based Hash Lists or &ldquo;VHashes&rdquo;</a>, Previous: <a href="Dictionary-Types.html" accesskey="p" rel="prev">Dictionary Types</a>, Up: <a href="Data-Types.html" accesskey="u" rel="up">Data Types</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>
<h4 class="subsection" id="Association-Lists-1"><span>6.6.20 Association Lists<a class="copiable-link" href="#Association-Lists-1"> &para;</a></span></h4>
<a class="index-entry-id" id="index-Association-Lists"></a>
<a class="index-entry-id" id="index-Alist"></a>
<a class="index-entry-id" id="index-association-List"></a>
<a class="index-entry-id" id="index-alist"></a>
<a class="index-entry-id" id="index-database"></a>
<p>An association list is a conventional data structure that is often used
to implement simple key-value databases. It consists of a list of
entries in which each entry is a pair. The <em class="dfn">key</em> of each entry is
the <code class="code">car</code> of the pair and the <em class="dfn">value</em> of each entry is the
<code class="code">cdr</code>.
</p>
<div class="example">
<pre class="example-preformatted">ASSOCIATION LIST ::= '( (KEY1 . VALUE1)
(KEY2 . VALUE2)
(KEY3 . VALUE3)
...
)
</pre></div>
<p>Association lists are also known, for short, as <em class="dfn">alists</em>.
</p>
<p>The structure of an association list is just one example of the infinite
number of possible structures that can be built using pairs and lists.
As such, the keys and values in an association list can be manipulated
using the general list structure procedures <code class="code">cons</code>, <code class="code">car</code>,
<code class="code">cdr</code>, <code class="code">set-car!</code>, <code class="code">set-cdr!</code> and so on. However,
because association lists are so useful, Guile also provides specific
procedures for manipulating them.
</p>
<ul class="mini-toc">
<li><a href="Alist-Key-Equality.html" accesskey="1">Alist Key Equality</a></li>
<li><a href="Adding-or-Setting-Alist-Entries.html" accesskey="2">Adding or Setting Alist Entries</a></li>
<li><a href="Retrieving-Alist-Entries.html" accesskey="3">Retrieving Alist Entries</a></li>
<li><a href="Removing-Alist-Entries.html" accesskey="4">Removing Alist Entries</a></li>
<li><a href="Sloppy-Alist-Functions.html" accesskey="5">Sloppy Alist Functions</a></li>
<li><a href="Alist-Example.html" accesskey="6">Alist Example</a></li>
</ul>
</div>
</body>
</html>