summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar John Cowan 2022-06-19 14:55:07 -0400
committerGravatar John Cowan 2022-06-19 14:55:07 -0400
commit82fa4ec1a43eeab2f80f3a9002cbd5ce69ddcb42 (patch)
tree346752ce7ece2134d4b8120a92b9e78a9a0c4ca8
parentwip (diff)
editorial
Diffstat (limited to '')
-rw-r--r--srfi-225.html19
1 files changed, 15 insertions, 4 deletions
diff --git a/srfi-225.html b/srfi-225.html
index fb0a093..73f1e72 100644
--- a/srfi-225.html
+++ b/srfi-225.html
@@ -41,7 +41,7 @@ None at present.
<p>Until recently, there was only one universally available mechanism for managing key-value pairs: alists.
Most Schemes also support hash tables, but until R6RS there was no standard interface to them, and many implementations
- do not provide that interface..p>/p>
+ do not provide that interface.</p>
In addition, alists can have multiple entries with the
same key, which makes them atypical instances of persistent dictionaries.</p>
<p>Now, however, the number of such mechanisms is growing. In addition to both R6RS and R7RS hash tables,
@@ -67,6 +67,13 @@ mappings are pure dictionaries; SRFI 125 hash tables are impure.
Note that if an instance of an impure dictionary type like SRFI 126 is in fact immutable, it still counts as impure.
The generic predicate <code>dict-pure?</code>
can be used to distinguish the two types.</p>
+<p>In addition, dictionaries need to be constructed using type-specific constructors,
+ as the performance characteristics differ in each case.
+ In addition, in cases where the dictionary has persistent storage of some type
+ there is generally some ancillary information required such as a file name or
+ DBMS table name needed.
+ Consequently there are no <code>make-dict</code>, <code>dict</code>, <code>dict-unfold</code>,
+ <code>dict-copy</code>, or similar procedures provided by this SRFI.</p>
<h3 id="definitions">Definitions</h3>
<p>We call a specific key-value combination an <em>association</em>.
(This is why an alist, or association list, is called that; it is a list of associations represented as pairs.)</p>
@@ -138,7 +145,7 @@ with other generic procedures, but it can have any value.</p>
ordering predicate, and hash function of <em>dict</em>.
The last two may be <code>#f</code> if the comparator
does not make use of these functions.</p>
-<p>If no comparator is known or is relevant to the dictionary type,
+<p>If the comparator is unavailable or is irrelevant to the dictionary type,
returns <code>#f</code>.</p>
<h3 id="update-procedures">Update procedures</h3>
<p>Note that the following procedures apply to both pure and impure
@@ -357,8 +364,12 @@ key <em>key</em>.
<p><code>(dto?</code>&nbsp;<em>obj</em><code>)</code></p>
<p>Returns <code>#t</code> if <em>obj</em> is a DTO, and <code>#f</code> otherwise.</p>
<p><code>(make-dto</code>&nbsp;<em>arg</em> …<code>)</code></p>
-<p>The <em>args</em> alternate between the values of exported proc-id variables and corresponding
-procedures. The following proc-id variables need to be provided
+<p>Returns a new DTO providing procedures that allow manipulation of dictionaries of a new type.
+ The <em>args</em> are alternately <em>proc-ids</em> and corresponding <em>procs</em>.</p>
+<p>A <em>proc-id</em> argument is the value of a variable whose name is the same as a procedure
+ suffixed with <code>-id</code>,
+ and a <em>proc</em> argument is the specific procedure implementing it for this type.
+The following proc-id variables and associated procedures need to be provided
in each call to <code>make-dto</code>
in order for the DTO to support the full set of dictionary procedures:</p>
<ul>
ht='13' alt='Gravatar' /> bencollins 1-0/+1 2003-07-13Update Debian files.Gravatar bencollins 4-25/+73 2003-07-13Ok, the Debian package was way out of sync with upstreamGravatar bencollins 1-1/+1 2003-07-13Ooops...libtool works a bit different than I thought, but atleast it worksGravatar bencollins 2-6/+1 2003-07-13Generate and install the pdf in the Debian package.Gravatar bencollins 3-3/+4 2003-07-13Don't run configure at the end of autogen.sh. Also, remove autom4te.cache.Gravatar bencollins 1-1/+1 2003-07-13Update Debian maintainerGravatar bencollins 1-1/+2 2003-07-13Update Debian changelog.Gravatar bencollins 1-0/+8 2003-07-13File doesn't really seem needed. The NEWS file gives a good overview, andGravatar bencollins 1-4/+0 2003-07-13Fix compiler warnings.Gravatar bencollins 4-12/+22 2003-07-13Updates from 0.10.0 release.Gravatar bencollins 4-5/+14 2003-04-23add libtoolize to bootstrapGravatar ddennedy 1-1/+10 2003-04-21added Dan Maas' rawiso docsGravatar ddennedy 1-32/+295 2003-04-07new_handle_on_port() error path fix from Jim RadfordGravatar dmaas 1-1/+3 2003-03-26add raw1394_new_handle_on_port() convenience functionGravatar dmaas 2-1/+41 2003-02-22Updates for new rawiso ioctl interface.Gravatar bencollins 3-37/+125 2003-01-15add iso_xmit_sync() and iso_xmit_write(); clean up iso handling a bitGravatar dmaas 5-39/+161 2003-01-15implement tag matching for rawiso receptionGravatar dmaas 3-4/+12 2003-01-06back out previous commit - don't drop the legacy API just yetGravatar dmaas 6-173/+130 2003-01-05emulate legacy ISO reception API on top of new rawiso APIGravatar dmaas 7-131/+174 2002-12-24update iso API for multi-channel reception and new packet buffer layoutGravatar dmaas 4-123/+236 2002-12-20oops, irq_interval needs to be signedGravatar anonymous 1-1/+1 2002-12-20dmaas - renamed exported arm definitions into the raw1394_ namespace; brought...Gravatar anonymous 3-124/+48 2002-12-16rawiso updates:Gravatar dmaas 3-18/+25 2002-11-18fix cplusplus extern C blockGravatar ddennedy 1-4/+4 2002-11-18merged rawiso branchGravatar ddennedy 7-6/+488