1
0
Fork 0
cl-sites/guile.html_node/Structures.html

83 lines
3.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>Structures (Guile Reference Manual)</title>
<meta name="description" content="Structures (Guile Reference Manual)">
<meta name="keywords" content="Structures (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="Dictionary-Types.html" rel="next" title="Dictionary Types">
<link href="Records.html" rel="prev" title="Records">
<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="subsection-level-extent" id="Structures">
<div class="nav-panel">
<p>
Next: <a href="Dictionary-Types.html" accesskey="n" rel="next">Dictionary Types</a>, Previous: <a href="Records.html" accesskey="p" rel="prev">Records</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="Structures-1"><span>6.6.18 Structures<a class="copiable-link" href="#Structures-1"> &para;</a></span></h4>
<a class="index-entry-id" id="index-Structures"></a>
<p>A <em class="dfn">structure</em> is a first class data type which holds Scheme values
or C words in fields numbered 0 upwards. A <em class="dfn">vtable</em> is a structure
that represents a structure type, giving field types and permissions,
and an optional print function for <code class="code">write</code> etc.
</p>
<p>Structures are lower level than records (see <a class="pxref" href="Records.html">Records</a>). Usually,
when you need to represent structured data, you just want to use
records. But sometimes you need to implement new kinds of structured
data abstractions, and for that purpose structures are useful. Indeed,
records in Guile are implemented with structures.
</p>
<ul class="mini-toc">
<li><a href="Vtables.html" accesskey="1">Vtables</a></li>
<li><a href="Structure-Basics.html" accesskey="2">Structure Basics</a></li>
<li><a href="Vtable-Contents.html" accesskey="3">Vtable Contents</a></li>
<li><a href="Meta_002dVtables.html" accesskey="4">Meta-Vtables</a></li>
<li><a href="Vtable-Example.html" accesskey="5">Vtable Example</a></li>
</ul>
</div>
</body>
</html>