1
0
Fork 0
cl-sites/guile.html_node/List-Mapping.html

95 lines
4.8 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>List Mapping (Guile Reference Manual)</title>
<meta name="description" content="List Mapping (Guile Reference Manual)">
<meta name="keywords" content="List Mapping (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="Lists.html" rel="up" title="Lists">
<link href="List-Searching.html" rel="prev" title="List Searching">
<style type="text/css">
<!--
a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
span:hover a.copiable-link {visibility: visible}
strong.def-name {font-family: monospace; font-weight: bold; font-size: larger}
-->
</style>
<link rel="stylesheet" type="text/css" href="https://www.gnu.org/software/gnulib/manual.css">
</head>
<body lang="en">
<div class="subsubsection-level-extent" id="List-Mapping">
<div class="nav-panel">
<p>
Previous: <a href="List-Searching.html" accesskey="p" rel="prev">List Searching</a>, Up: <a href="Lists.html" accesskey="u" rel="up">Lists</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="subsubsection" id="List-Mapping-1"><span>6.6.9.8 List Mapping<a class="copiable-link" href="#List-Mapping-1"> &para;</a></span></h4>
<p>List processing is very convenient in Scheme because the process of
iterating over the elements of a list can be highly abstracted. The
procedures in this section are the most basic iterating procedures for
lists. They take a procedure and one or more lists as arguments, and
apply the procedure to each element of the list. They differ in their
return value.
</p>
<a class="index-entry-id" id="index-map-2"></a>
<dl class="first-deffn">
<dt class="deffn" id="index-map"><span class="category-def">Scheme Procedure: </span><span><strong class="def-name">map</strong> <var class="def-var-arguments">proc arg1 arg2 &hellip;</var><a class="copiable-link" href="#index-map"> &para;</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-map_002din_002dorder"><span class="category-def">Scheme Procedure: </span><span><strong class="def-name">map-in-order</strong> <var class="def-var-arguments">proc arg1 arg2 &hellip;</var><a class="copiable-link" href="#index-map_002din_002dorder"> &para;</a></span></dt>
<dt class="deffnx def-cmd-deffn" id="index-scm_005fmap"><span class="category-def">C Function: </span><span><strong class="def-name">scm_map</strong> <var class="def-var-arguments">(proc, arg1, args)</var><a class="copiable-link" href="#index-scm_005fmap"> &para;</a></span></dt>
<dd><p>Apply <var class="var">proc</var> to each element of the list <var class="var">arg1</var> (if only two
arguments are given), or to the corresponding elements of the argument
lists (if more than two arguments are given). The result(s) of the
procedure applications are saved and returned in a list. For
<code class="code">map</code>, the order of procedure applications is not specified,
<code class="code">map-in-order</code> applies the procedure from left to right to the list
elements.
</p></dd></dl>
<a class="index-entry-id" id="index-for_002deach-3"></a>
<dl class="first-deffn">
<dt class="deffn" id="index-for_002deach"><span class="category-def">Scheme Procedure: </span><span><strong class="def-name">for-each</strong> <var class="def-var-arguments">proc arg1 arg2 &hellip;</var><a class="copiable-link" href="#index-for_002deach"> &para;</a></span></dt>
<dd><p>Like <code class="code">map</code>, but the procedure is always applied from left to right,
and the result(s) of the procedure applications are thrown away. The
return value is not specified.
</p></dd></dl>
<p>See also SRFI-1 which extends these functions to take lists of unequal
lengths (<a class="ref" href="SRFI_002d1-Fold-and-Map.html">Fold, Unfold &amp; Map</a>).
</p>
</div>
</body>
</html>