202 lines
373 KiB
HTML
202 lines
373 KiB
HTML
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||
|
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><meta name="viewport" content="width=device-width, initial-scale=0.8"/><title>4.17 Dictionaries</title><link rel="stylesheet" type="text/css" href="../scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="extras.css" title="default"/><link rel="stylesheet" type="text/css" href="../racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../doc-site.css" title="default"/><script type="text/javascript" src="../scribble-common.js"></script><script type="text/javascript" src="../manual-racket.js"></script><script type="text/javascript" src="../manual-racket.js"></script><script type="text/javascript" src="../doc-site.js"></script><script type="text/javascript" src="../local-redirect/local-redirect.js"></script><script type="text/javascript" src="../local-redirect/local-user-redirect.js"></script><!--[if IE 6]><style type="text/css">.SIEHidden { overflow: hidden; }</style><![endif]--></head><body id="doc-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,"tocview_0");">►</a></td><td></td><td><a href="index.html" class="tocviewlink" data-pltdoc="x">The Racket Reference</a></td></tr></table></div><div class="tocviewsublisttop" style="display: none;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1 </td><td><a href="model.html" class="tocviewlink" data-pltdoc="x">Language Model</a></td></tr><tr><td align="right">2 </td><td><a href="notation.html" class="tocviewlink" data-pltdoc="x">Notation for Documentation</a></td></tr><tr><td align="right">3 </td><td><a href="syntax.html" class="tocviewlink" data-pltdoc="x">Syntactic Forms</a></td></tr><tr><td align="right">4 </td><td><a href="data.html" class="tocviewselflink" data-pltdoc="x">Datatypes</a></td></tr><tr><td align="right">5 </td><td><a href="structures.html" class="tocviewlink" data-pltdoc="x">Structures</a></td></tr><tr><td align="right">6 </td><td><a href="mzlib_class.html" class="tocviewlink" data-pltdoc="x">Classes and Objects</a></td></tr><tr><td align="right">7 </td><td><a href="mzlib_unit.html" class="tocviewlink" data-pltdoc="x">Units</a></td></tr><tr><td align="right">8 </td><td><a href="contracts.html" class="tocviewlink" data-pltdoc="x">Contracts</a></td></tr><tr><td align="right">9 </td><td><a href="match.html" class="tocviewlink" data-pltdoc="x">Pattern Matching</a></td></tr><tr><td align="right">10 </td><td><a href="control.html" class="tocviewlink" data-pltdoc="x">Control Flow</a></td></tr><tr><td align="right">11 </td><td><a href="concurrency.html" class="tocviewlink" data-pltdoc="x">Concurrency and Parallelism</a></td></tr><tr><td align="right">12 </td><td><a href="Macros.html" class="tocviewlink" data-pltdoc="x">Macros</a></td></tr><tr><td align="right">13 </td><td><a href="input-and-output.html" class="tocviewlink" data-pltdoc="x">Input and Output</a></td></tr><tr><td align="right">14 </td><td><a href="security.html" class="tocviewlink" data-pltdoc="x">Reflection and Security</a></td></tr><tr><td align="right">15 </td><td><a href="os.html" class="tocviewlink" data-pltdoc="x">Operating System</a></td></tr><tr><td align="right">16 </td><td><a href="memory.html" class="tocviewlink" data-pltdoc="x">Memory Management</a></td></tr><tr><td align="right">17 </td><td><a href="unsafe.html" class="tocviewlink" data-pltdoc="x">Unsafe Operations</a></td></tr><tr><td align="right">18 </td><td><a href="running.html" class="tocv
|
||
|
values. The following datatypes are all dictionaries:</p><ul><li><p><a href="hashtables.html#%28tech._hash._table%29" data-pltdoc="x">hash tables</a>;</p></li><li><p><a href="vectors.html#%28tech._vector%29" data-pltdoc="x">vectors</a> (using only exact integers as keys);</p></li><li><p><a href="pairs.html#%28tech._list%29" data-pltdoc="x">lists</a> of <a href="pairs.html#%28tech._pair%29" data-pltdoc="x">pairs</a> as an <a name="(tech._association._list)"></a><span style="font-style: italic">association
|
||
|
list</span> using <span class="RktSym"><a href="Equality.html#%28def._%28%28quote._~23~25kernel%29._equal~3f%29%29" class="RktValLink" data-pltdoc="x">equal?</a></span> to compare keys, which must be distinct; and</p></li><li><p><a href="structures.html#%28tech._structure%29" data-pltdoc="x">structures</a> whose types implement the <span class="RktSym"><a href="dicts.html#%28form._%28%28lib._racket%2Fdict..rkt%29._gen~3adict%29%29" class="RktStxLink" data-pltdoc="x">gen:dict</a></span>
|
||
|
<a href="struct-generics.html#%28tech._generic._interface%29" class="techoutside" data-pltdoc="x"><span class="techinside">generic interface</span></a>.</p></li></ul><p>When list of pairs is used as <a href="dicts.html#%28tech._association._list%29" class="techoutside" data-pltdoc="x"><span class="techinside">association list</span></a> but does not
|
||
|
have distinct keys (so it’s not an association list), operations like
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-ref%29%29" class="RktValLink" data-pltdoc="x">dict-ref</a></span> and <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-remove%29%29" class="RktValLink" data-pltdoc="x">dict-remove</a></span> operate on the first
|
||
|
instance of the key, while operations like <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-map%29%29" class="RktValLink" data-pltdoc="x">dict-map</a></span> and
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-keys%29%29" class="RktValLink" data-pltdoc="x">dict-keys</a></span> produce an element for every instance of the key.</p><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="require.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._require%29%29" class="RktStxLink" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="dicts.html" class="RktModLink" data-pltdoc="x"><span class="RktSym">racket/dict</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller"> package:</span> <a href="https://pkgs.racket-lang.org/package/base" title="Install this package using `raco pkg install base`"><span class="stt">base</span></a></span></td></tr></table></div><div class="SIntrapara">The bindings documented in this section are provided by the <a href="dicts.html" class="RktModLink" data-pltdoc="x"><span class="RktSym">racket/dict</span></a> and <a href="index.html" class="RktModLink" data-pltdoc="x"><span class="RktSym">racket</span></a> libraries, but not <a href="index.html" class="RktModLink" data-pltdoc="x"><span class="RktSym">racket/base</span></a>.</div></p><h5 x-source-module="(lib "scribblings/reference/reference.scrbl")" x-source-pkg="racket-doc" x-part-tag=""Dictionary_Predicates_and_Contracts"">4.17.1<tt> </tt><a name="(part._.Dictionary_.Predicates_and_.Contracts)"></a>Dictionary Predicates and Contracts</h5><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict~3f))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict?</a></span></span><span class="hspace"> </span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._boolean~3f%29%29" class="RktValLink" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">v</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns <span class="RktVal">#t</span> if <span class="RktVar">v</span> is a <a href="dicts.html#%28tech._dictionary%29" class="techoutside" data-pltdoc="x"><span class="techinside">dictionary</span></a>, <span class="RktVal">#f</span>
|
||
|
otherwise.</div></p><p>Beware that <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span> is not a constant-time test on pairs, since
|
||
|
checking that <span class="RktVar">v</span> is an <a href="dicts.html#%28tech._association._list%29" class="techoutside" data-pltdoc="x"><span class="techinside">association list</span></a> may require
|
||
|
traversing the list.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#t</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">#</span><span class="RktVal">(</span><span class="RktVal">"apple"</span><span class="hspace"> </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#t</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">"apple"</span><span class="hspace"> </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#f</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"apple"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#t</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-implements~3f))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-implements~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-implements?</a></span></span><span class="hspace"> </span><span class="RktVar">d</span><span class="hspace"> </span><span class="RktVar">sym</span><span class="hspace"> </span><span class="RktMeta">...</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._boolean~3f%29%29" class="RktValLink" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">d</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%
|
||
|
<span class="RktSym"><a href="dicts.html#%28form._%28%28lib._racket%2Fdict..rkt%29._gen~3adict%29%29" class="RktStxLink" data-pltdoc="x">gen:dict</a></span> named by the <span class="RktVar">sym</span>s; returns <span class="RktVal">#f</span> otherwise.
|
||
|
Fallback implementations do not affect the result; <span class="RktVar">d</span> may support the
|
||
|
given methods via fallback implementations yet produce <span class="RktVal">#f</span>.</div></p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-implements~3f%29%29" class="RktValLink" data-pltdoc="x">dict-implements?</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._hash%29%29" class="RktValLink" data-pltdoc="x">hash</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">dict-set!</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#f</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-implements~3f%29%29" class="RktValLink" data-pltdoc="x">dict-implements?</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._make-hash%29%29" class="RktValLink" data-pltdoc="x">make-hash</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"apple"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">dict-set!</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#t</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-implements~3f%29%29" class="RktValLink" data-pltdoc="x">dict-implements?</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._make-hash%29%29" class="RktValLink" data-pltdoc="x">make-hash</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"apple"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">dict-remove!</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#t</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-implements~3f%29%29" class="RktValLink" data-pltdoc="x">dict-implements?</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="vectors.html#%28def._%28%28quote._~23~25kernel%29._vector%29%29" class="RktValLink" data-pltdoc="x">vector</a></span><span class="hspace"> </span><span class="RktVal">"apple"</span><span class="hspace"> </span><span class="RktVal">"banana"</span><span class="RktPn">)</spa
|
||
|
named by the <span class="RktVar">sym</span>s. Note that the generated contract is not similar to
|
||
|
<span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fhash..rkt%29._hash%2Fc%29%29" class="RktValLink" data-pltdoc="x">hash/c</a></span>, but closer to <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-implements~3f%29%29" class="RktValLink" data-pltdoc="x">dict-implements?</a></span>.
|
||
|
</div><div class="SIntrapara"><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span><span class="hspace"> </span><span class="RktSym">deformed-dict</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">#:methods</span><span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28form._%28%28lib._racket%2Fdict..rkt%29._gen~3adict%29%29" class="RktStxLink" data-pltdoc="x">gen:dict</a></span><span class="hspace"> </span><span class="RktPn">[</span><span class="RktPn">]</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="attaching-contracts-to-values.html#%28form._%28%28lib._racket%2Fcontract%2Fregion..rkt%29._define%2Fcontract%29%29" class="RktStxLink" data-pltdoc="x">define/contract</a></span><span class="hspace"> </span><span class="RktSym">good-dict</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-implements%2Fc%29%29" class="RktValLink" data-pltdoc="x">dict-implements/c</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">deformed-dict</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="attaching-contracts-to-values.html#%28form._%28%28lib._racket%2Fcontract%2Fregion..rkt%29._define%2Fcontract%29%29" class="RktStxLink" data-pltdoc="x">define/contract</a></span><span class="hspace"> </span><span class="RktSym">bad-dict</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-implements%2Fc%29%29" class="RktValLink" data-pltdoc="x">dict-implements/c</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">dict-ref</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">deformed-dict</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><p><span class="RktErr">bad-dict: broke its own contract</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace"> </span><span class="RktErr">promised: (dict-implements/c dict-ref)</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace"> </span><span class="RktErr">produced: #<deformed-dict></span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace"> </span><span class="RktErr">in: (dict-implements/c dict-ref)</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace"> </span><span class="RktErr">contract from: (definition bad-dict)</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace"> </span><span class="RktErr">blaming: (definition bad-dict)</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace">
|
||
|
<span class="RktVal">#f</span> otherwise.</div></p><p>Equivalent to <span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-implements~3f%29%29" class="RktValLink" data-pltdoc="x">dict-implements?</a></span><span class="stt"> </span><span class="RktVar">d</span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">dict-set!</span><span class="RktPn">)</span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-mutable~3f%29%29" class="RktValLink" data-pltdoc="x">dict-mutable?</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#f</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-mutable~3f%29%29" class="RktValLink" data-pltdoc="x">dict-mutable?</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._make-hash%29%29" class="RktValLink" data-pltdoc="x">make-hash</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#t</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-mutable~3f%29%29" class="RktValLink" data-pltdoc="x">dict-mutable?</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">#</span><span class="RktVal">(</span><span class="RktVal">"apple"</span><span class="hspace"> </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#f</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-mutable~3f%29%29" class="RktValLink" data-pltdoc="x">dict-mutable?</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="vectors.html#%28def._%28%28quote._~23~25kernel%29._vector%29%29" class="RktValLink" data-pltdoc="x">vector</a></span><span class="hspace"> </span><span class="RktVal">"apple"</span><span class="hspace"> </span><span class="RktVal">"banana"</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#t</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-mutable~3f%29%29" class="RktValLink" data-pltdoc="x">dict-mutable?</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"apple"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#f</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquo
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-remove%21%29%29" class="RktValLink" data-pltdoc="x">dict-remove!</a></span> and/or <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-remove%29%29" class="RktValLink" data-pltdoc="x">dict-remove</a></span>, <span class="RktVal">#f</span>
|
||
|
otherwise.</div></p><p>Equivalent to
|
||
|
<span class="RktPn">(</span><span class="RktSym"><a href="if.html#%28form._%28%28lib._racket%2Fprivate%2Fletstx-scheme..rkt%29._or%29%29" class="RktStxLink" data-pltdoc="x">or</a></span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-implements~3f%29%29" class="RktValLink" data-pltdoc="x">dict-implements?</a></span><span class="stt"> </span><span class="RktVar">d</span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">dict-remove!</span><span class="RktPn">)</span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-implements~3f%29%29" class="RktValLink" data-pltdoc="x">dict-implements?</a></span><span class="stt"> </span><span class="RktVar">d</span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">dict-remove</span><span class="RktPn">)</span><span class="RktPn">)</span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-can-remove-keys~3f%29%29" class="RktValLink" data-pltdoc="x">dict-can-remove-keys?</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#t</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-can-remove-keys~3f%29%29" class="RktValLink" data-pltdoc="x">dict-can-remove-keys?</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">#</span><span class="RktVal">(</span><span class="RktVal">"apple"</span><span class="hspace"> </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#f</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-can-remove-keys~3f%29%29" class="RktValLink" data-pltdoc="x">dict-can-remove-keys?</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"apple"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#t</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-can-functional-set~3f))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-can-functional-set~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-can-functional-set?</a></span></span><span class="hspace"> </span><span class="RktVar">d</span><span class="RktPn">)</span><span class="hspace"> </span>&ra
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%29%29" class="RktValLink" data-pltdoc="x">dict-set</a></span>, <span class="RktVal">#f</span> otherwise.</div></p><p>Equivalent to <span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-implements~3f%29%29" class="RktValLink" data-pltdoc="x">dict-implements?</a></span><span class="stt"> </span><span class="RktVar">d</span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">dict-set</span><span class="RktPn">)</span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-can-functional-set~3f%29%29" class="RktValLink" data-pltdoc="x">dict-can-functional-set?</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#t</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-can-functional-set~3f%29%29" class="RktValLink" data-pltdoc="x">dict-can-functional-set?</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._make-hash%29%29" class="RktValLink" data-pltdoc="x">make-hash</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#f</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-can-functional-set~3f%29%29" class="RktValLink" data-pltdoc="x">dict-can-functional-set?</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">#</span><span class="RktVal">(</span><span class="RktVal">"apple"</span><span class="hspace"> </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#f</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-can-functional-set~3f%29%29" class="RktValLink" data-pltdoc="x">dict-can-functional-set?</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"apple"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#t</span></p></td></tr></table></blockquote></div></p><h5 x-source-module="(lib "scribblings/reference/reference.scrbl")" x-source-pkg="racket-doc" x-part-tag=""Generic_Dictionary_Interface"">4.17.2<tt> </tt><a name="(part._.Generic_.Dictionary_.Interface)"></a>Generic Dictionary Interface</h5><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><p class="RForeground"><a name="(form._((lib._racket/dict..rkt)._gen~3adi
|
||
|
supplies dictionary method implementations for a structure type via the
|
||
|
<span class="RktPn">#:methods</span> option of <span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span> definitions. This interface can
|
||
|
be used to implement any of the methods documented as
|
||
|
<a href="dicts.html#%28part._primitive-dict-methods%29" data-pltdoc="x">Primitive Dictionary Methods</a> and <a href="dicts.html#%28part._derived-dict-methods%29" data-pltdoc="x">Derived Dictionary Methods</a>.</div></p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define-struct.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x">struct</a></span><span class="hspace"> </span><span class="RktSym">alist</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">v</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">#:methods</span><span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28form._%28%28lib._racket%2Fdict..rkt%29._gen~3adict%29%29" class="RktStxLink" data-pltdoc="x">gen:dict</a></span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">[</span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-ref%29%29" class="RktValLink" data-pltdoc="x">dict-ref</a></span><span class="hspace"> </span><span class="RktSym">dict</span><span class="hspace"> </span><span class="RktSym">key</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">[</span><span class="RktSym">default</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._lambda%29%29" class="RktStxLink" data-pltdoc="x">lambda</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._error%29%29" class="RktValLink" data-pltdoc="x">error</a></span><span class="hspace"> </span><span class="RktVal">"key not found"</span><span class="hspace"> </span><span class="RktSym">key</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">]</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="if.html#%28form._%28%28lib._racket%2Fprivate%2Fletstx-scheme..rkt%29._cond%29%29" class="RktStxLink" data-pltdoc="x">cond</a></span><span class="hspace"> </span><span class="RktPn">[</span><span class="RktPn">(</span><span class="RktSym"><a href="pairs.html#%28def._%28%28lib._racket%2Fprivate%2Flist..rkt%29._assoc%29%29" class="RktValLink" data-pltdoc="x">assoc</a></span><span class="hspace"> </span><span class="RktSym">key</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">alist-v</span><span class="hspace"> </span><span class="RktSym">dict</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktSym"><a href="if.html#%28form._%28%28lib._racket%2Fprivate%2Fletstx-scheme..rkt%29._~3d~3e%29%29" class="RktStxLink" data-pltdoc="x">=></a></span><span class="hspace"> </span><span class="RktSym"><a href="pairs.html#%28def._%28%28quote._~23~25kernel%29._cdr%29%29" class="RktValLink" data-pltdoc="x">cdr</a></span><sp
|
||
|
to the dictionary API. Using the <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._prop~3adict%29%29" class="RktValLink" data-pltdoc="x">prop:dict</a></span> property is
|
||
|
discouraged; use the <span class="RktSym"><a href="dicts.html#%28form._%28%28lib._racket%2Fdict..rkt%29._gen~3adict%29%29" class="RktStxLink" data-pltdoc="x">gen:dict</a></span> <a href="struct-generics.html#%28tech._generic._interface%29" class="techoutside" data-pltdoc="x"><span class="techinside">generic interface</span></a>
|
||
|
instead. Accepts a vector of 10 method implementations:</div></p><ul><li><p><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-ref%29%29" class="RktValLink" data-pltdoc="x">dict-ref</a></span></p></li><li><p><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%21%29%29" class="RktValLink" data-pltdoc="x">dict-set!</a></span>, or <span class="RktVal">#f</span> if unsupported</p></li><li><p><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%29%29" class="RktValLink" data-pltdoc="x">dict-set</a></span>, or <span class="RktVal">#f</span> if unsupported</p></li><li><p><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-remove%21%29%29" class="RktValLink" data-pltdoc="x">dict-remove!</a></span>, or <span class="RktVal">#f</span> if unsupported</p></li><li><p><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-remove%29%29" class="RktValLink" data-pltdoc="x">dict-remove</a></span>, or <span class="RktVal">#f</span> if unsupported</p></li><li><p><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-count%29%29" class="RktValLink" data-pltdoc="x">dict-count</a></span></p></li><li><p><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span></p></li><li><p><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span></p></li><li><p><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-key%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-key</a></span></p></li><li><p><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-value%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-value</a></span></p></li></ul><h5 x-source-module="(lib "scribblings/reference/reference.scrbl")" x-source-pkg="racket-doc" x-part-tag=""primitive-dict-methods"">4.17.2.1<tt> </tt><a name="(part._primitive-dict-methods)"></a>Primitive Dictionary Methods</h5><p>These methods of <span class="RktSym"><a href="dicts.html#%28form._%28%28lib._racket%2Fdict..rkt%29._gen~3adict%29%29" class="RktStxLink" data-pltdoc="x">gen:dict</a></span> have no fallback implementations; they are
|
||
|
only supported for dictionary types that directly implement them.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-ref))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-ref%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-ref</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span><span class="RktVar">key</span><span class="hspace"> </span><span class="RktOpt">[</span><span class="RktVar">failure-result</span><span class="RktOpt">]</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">key</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">failure-result</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">:</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktSym"><a href="contract-utilities.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._failure-result%2Fc%29%29" class="RktValLink" data-pltdoc="x">failure-result/c</a></span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">=</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">(</span><span class="RktSym"><a href="lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._lambda%29%29" class="RktStxLink" data-pltdoc="x">lambda</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28quote._~23~25kernel%29._raise%29%29" class="RktValLink" data-pltdoc="x">raise</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._make-exn~3afail%29%29" class="RktValLink" data-pltdoc="x">make-exn:fail</a></span><span class="hspace"> </span><span class="RktSym">....</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Returns the value for <span class="RktVar">key</span> in <span class="RktVar">dict</span>. If no value
|
||
|
is found for <span class="RktVar">key</span>, then <span class="RktVar">failure-result</span> determines the
|
||
|
result:</div></p><ul><li><p>If <span class="RktVar">failure-result</span> is a procedure, it is called
|
||
|
(through a tail call) with no arguments to produce the result.</p></li><li><p>Otherwise, <span class="RktVar">failure-result</span> is returned as the result.</p></li></ul><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-ref%29%29" class="RktValLink" data-pltdoc="x">dict-ref</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"beer"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">"apple"</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-ref%29%29" class="RktValLink" data-pltdoc="x">dict-ref</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"beer"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">c</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktErr">hash-ref: no value found for key</span></p></td></tr><tr><td><p><span class="RktErr"></span><span class="hspace"> </span><span class="RktErr">key: 'c</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-ref%29%29" class="RktValLink" data-pltdoc="x">dict-ref</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"beer"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">c</span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#f</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-ref%29%29" class="RktValLink" data-pltdoc="x">dict-ref</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"apple"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="hspace">
|
||
|
existing mapping for <span class="RktVar">key</span>. The update can fail with a
|
||
|
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract</a></span> exception if <span class="RktVar">dict</span> is not mutable
|
||
|
or if <span class="RktVar">key</span> is not an allowed key for the dictionary (e.g., not
|
||
|
an exact integer in the appropriate range when <span class="RktVar">dict</span> is a
|
||
|
<a href="vectors.html#%28tech._vector%29" class="techoutside" data-pltdoc="x"><span class="techinside">vector</span></a>).</div></p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._make-hash%29%29" class="RktValLink" data-pltdoc="x">make-hash</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%21%29%29" class="RktValLink" data-pltdoc="x">dict-set!</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">"apple"</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktSym">h</span></td></tr><tr><td><p><span class="RktRes">'#hash((a . "apple"))</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktVar">v</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="vectors.html#%28def._%28%28quote._~23~25kernel%29._vector%29%29" class="RktValLink" data-pltdoc="x">vector</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%21%29%29" class="RktValLink" data-pltdoc="x">dict-set!</a></span><span class="hspace"> </span><span class="RktVar">v</span><span class="hspace"> </span><span class="RktVal">0</span><span class="hspace"> </span><span class="RktVal">"apple"</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktVar">v</span></td></tr><tr><td><p><span class="RktRes">'#("apple" #f #f)</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-set))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-set</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span><span class="RktVar">key</span><span class="hspace"> </span><span class="RktVar">v</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._and%2Fc%29%29" class="RktValLink" data-pltdoc="x">and/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict.
|
||
|
<span class="RktVar">v</span>, overwriting any existing mapping for <span class="RktVar">key</span>, and
|
||
|
returning an extended dictionary. The update can fail with a
|
||
|
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract</a></span> exception if <span class="RktVar">dict</span> does not support
|
||
|
functional extension or if <span class="RktVar">key</span> is not an allowed key for the
|
||
|
dictionary.</div></p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%29%29" class="RktValLink" data-pltdoc="x">dict-set</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">"apple"</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'#hash((a . "apple"))</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%29%29" class="RktValLink" data-pltdoc="x">dict-set</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"beer"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">"banana"</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'#hash((a . "apple") (b . "banana"))</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%29%29" class="RktValLink" data-pltdoc="x">dict-set</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">"apple"</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'((a . "apple"))</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%29%29" class="RktValLink" data-pltdoc="x">dict-set</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"apple"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"beer"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">"banana"</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'((a . "apple") (b . "banana"))</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-remove!))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-remove%21%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-remove!</a></span></s
|
||
|
update can fail if <span class="RktVar">dict</span> is not mutable or does not support
|
||
|
removing keys (as is the case for <a href="vectors.html#%28tech._vector%29" class="techoutside" data-pltdoc="x"><span class="techinside">vectors</span></a>, for example).</div></p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._make-hash%29%29" class="RktValLink" data-pltdoc="x">make-hash</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%21%29%29" class="RktValLink" data-pltdoc="x">dict-set!</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">"apple"</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktSym">h</span></td></tr><tr><td><p><span class="RktRes">'#hash((a . "apple"))</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-remove%21%29%29" class="RktValLink" data-pltdoc="x">dict-remove!</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktSym">h</span></td></tr><tr><td><p><span class="RktRes">'#hash()</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-remove))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-remove%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-remove</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span><span class="RktVar">key</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._and%2Fc%29%29" class="RktValLink" data-pltdoc="x">and/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span><span class="hspace"> </span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._immutable~3f%29%29" class="RktValLink" data-pltdoc="x">immutable?</a></span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._and%2Fc%29%29" class="RktValLink" data-pltdoc="x">and/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%
|
||
|
<span class="RktVar">dict</span>, returning the fresh dictionary. The update can fail
|
||
|
if <span class="RktVar">dict</span> does not support functional update or does not
|
||
|
support removing keys.</div></p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%29%29" class="RktValLink" data-pltdoc="x">dict-set</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktSym">h</span></td></tr><tr><td><p><span class="RktRes">'#hash((a . "apple"))</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-remove%29%29" class="RktValLink" data-pltdoc="x">dict-remove</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'#hash()</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktSym">h</span></td></tr><tr><td><p><span class="RktRes">'#hash((a . "apple"))</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-remove%29%29" class="RktValLink" data-pltdoc="x">dict-remove</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">z</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'#hash((a . "apple"))</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-remove%29%29" class="RktValLink" data-pltdoc="x">dict-remove</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"apple"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'((b . "banana"))</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-iterate-first))"></a><span title="Provided from: racket
|
||
|
it returns a non-<span class="RktVal">#f</span> value that is an index to the first
|
||
|
element in the dict table; “first” refers to an unspecified ordering
|
||
|
of the dictionary elements. For a mutable <span class="RktVar">dict</span>, this index is
|
||
|
guaranteed to refer to the first item only as long as no mappings are
|
||
|
added to or removed from <span class="RktVar">dict</span>.</div></p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"banana"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">0</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#f</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span><span class="hspace"> </span><span class="RktVal">#</span><span class="RktVal">(</span><span class="RktVal">"apple"</span><span class="hspace"> </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">0</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"apple"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#<assoc-iter></span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-iterate-next))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-iterate-next</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span><span class="RktVar">pos</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></p></blockquote></td></tr><tr><td><span class="hspa
|
||
|
<span class="RktVar">dict</span> after the element indexed by <span class="RktVar">pos</span> or <span class="RktVal">#f</span>
|
||
|
if <span class="RktVar">pos</span> refers to the last element in <span class="RktVar">dict</span>. If
|
||
|
<span class="RktVar">pos</span> is not a valid index, then the
|
||
|
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract</a></span> exception is raised. For a mutable <span class="RktVar">dict</span>, the result
|
||
|
index is guaranteed to refer to its item only as long as no items are
|
||
|
added to or removed from <span class="RktVar">dict</span>. The <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span>
|
||
|
operation should take constant time.</div></p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"banana"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">i</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktSym">i</span></td></tr><tr><td><p><span class="RktRes">0</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktSym">i</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">1</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktSym">i</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#f</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-iterate-key))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-key%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-iterate-key</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span><span class="RktVar">pos</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" cla
|
||
|
<span class="RktVar">pos</span>. If <span class="RktVar">pos</span> is not a valid index for <span class="RktVar">dict</span>,
|
||
|
the <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract</a></span> exception is raised. The <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-key%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-key</a></span>
|
||
|
operation should take constant time.</div></p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"apple"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">i</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-key%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-key</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktSym">i</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'a</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-key%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-key</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktSym">i</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'b</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-iterate-value))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-value%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-iterate-value</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span><span class="RktVar">pos</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="data-structure-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%29%29" class="RktStxLink" data-pltdoc="x">any</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><sp
|
||
|
<span class="RktVar">pos</span>. If <span class="RktVar">pos</span> is not a valid index for <span class="RktVar">dict</span>,
|
||
|
the <span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract</a></span> exception is raised. The <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-key%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-key</a></span>
|
||
|
operation should take constant time.</div></p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"apple"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">i</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-value%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-value</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktSym">i</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">"apple"</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-value%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-value</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktSym">i</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">"banana"</span></p></td></tr></table></blockquote></div></p><h5 x-source-module="(lib "scribblings/reference/reference.scrbl")" x-source-pkg="racket-doc" x-part-tag=""derived-dict-methods"">4.17.2.2<tt> </tt><a name="(part._derived-dict-methods)"></a>Derived Dictionary Methods</h5><p>These methods of <span class="RktSym"><a href="dicts.html#%28form._%28%28lib._racket%2Fdict..rkt%29._gen~3adict%29%29" class="RktStxLink" data-pltdoc="x">gen:dict</a></span> have fallback implementations in terms of
|
||
|
the other methods; they may be supported even by dictionary types that do not
|
||
|
directly implement them.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-has-key~3f))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-has-key~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-has-key?</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span><span class="RktVar">key</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._boolean~3f%29%29" class="RktValLink" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">key</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns <span class="RktVal">#t</span> if <span class="RktVar">dict</span> contains a value for the given
|
||
|
<span class="RktVar">key</span>, <span class="RktVal">#f</span> otherwise.</div></p><p>Supported for any <span class="RktVar">dict</span> that implements <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-ref%29%29" class="RktValLink" data-pltdoc="x">dict-ref</a></span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-has-key~3f%29%29" class="RktValLink" data-pltdoc="x">dict-has-key?</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"beer"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#t</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-has-key~3f%29%29" class="RktValLink" data-pltdoc="x">dict-has-key?</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"beer"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">c</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#f</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-has-key~3f%29%29" class="RktValLink" data-pltdoc="x">dict-has-key?</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"apple"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">b</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#t</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-has-key~3f%29%29" class="RktValLink" data-pltdoc="x">dict-has-key?</a></span><span class="hspace"> </span><span class="RktVal">#</span><span class="RktVal">(</span><span class="RktVal">"apple"</span><span class="hspace"> </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">1</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">#t</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-has-key~3f%29%29" class="RktValLink" data-pltd
|
||
|
existing mapping for each <span class="RktVar">key</span>. The update can fail with a
|
||
|
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract</a></span> exception if <span class="RktVar">dict</span> is not mutable
|
||
|
or if any <span class="RktVar">key</span> is not an allowed key for the dictionary (e.g., not
|
||
|
an exact integer in the appropriate range when <span class="RktVar">dict</span> is a
|
||
|
<a href="vectors.html#%28tech._vector%29" class="techoutside" data-pltdoc="x"><span class="techinside">vector</span></a>). The update takes place from the left, so later mappings overwrite
|
||
|
earlier mappings.</div></p><p>Supported for any <span class="RktVar">dict</span> that implements <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%21%29%29" class="RktValLink" data-pltdoc="x">dict-set!</a></span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._make-hash%29%29" class="RktValLink" data-pltdoc="x">make-hash</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%2A%21%29%29" class="RktValLink" data-pltdoc="x">dict-set*!</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">"apple"</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">"banana"</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktSym">h</span></td></tr><tr><td><p><span class="RktRes">'#hash((a . "apple") (b . "banana"))</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">v1</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="vectors.html#%28def._%28%28quote._~23~25kernel%29._vector%29%29" class="RktValLink" data-pltdoc="x">vector</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%2A%21%29%29" class="RktValLink" data-pltdoc="x">dict-set*!</a></span><span class="hspace"> </span><span class="RktSym">v1</span><span class="hspace"> </span><span class="RktVal">0</span><span class="hspace"> </span><span class="RktVal">"apple"</span><span class="hspace"> </span><span class="RktVal">1</span><span class="hspace"> </span><span class="RktVal">"banana"</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktSym">v1</span></td></tr><tr><td><p><span class="RktRes">'#("apple" "banana" #f)</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">v2</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="vectors.html#%28def._%28%28quote._~23~25kernel%29._vector%29%29" class="RktValLink" data-pltdoc="x">vector</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">>
|
||
|
each <span class="RktVar">v</span>, overwriting any existing mapping for each <span class="RktVar">key</span>, and
|
||
|
returning an extended dictionary. The update can fail with a
|
||
|
<span class="RktSym"><a href="exns.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._exn~3afail~3acontract%29%29" class="RktValLink" data-pltdoc="x">exn:fail:contract</a></span> exception if <span class="RktVar">dict</span> does not support
|
||
|
functional extension or if any <span class="RktVar">key</span> is not an allowed key for the
|
||
|
dictionary. The update takes place from the left, so later mappings overwrite
|
||
|
earlier mappings.</div></p><p>Supported for any <span class="RktVar">dict</span> that implements <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%29%29" class="RktValLink" data-pltdoc="x">dict-set</a></span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%2A%29%29" class="RktValLink" data-pltdoc="x">dict-set*</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">"apple"</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">"beer"</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'#hash((a . "apple") (b . "beer"))</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%2A%29%29" class="RktValLink" data-pltdoc="x">dict-set*</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"beer"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">"banana"</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">"anchor"</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'#hash((a . "anchor") (b . "banana"))</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%2A%29%29" class="RktValLink" data-pltdoc="x">dict-set*</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">"apple"</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">"beer"</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'((a . "apple") (b . "beer"))</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%2A%29%29" class="RktValLink" data-pltdoc="x">dict-set*</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"apple"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"beer"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">"banana"</span><span
|
||
|
is found for <span class="RktVar">key</span>, then <span class="RktVar">to-set</span> determines the
|
||
|
result as in <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-ref%29%29" class="RktValLink" data-pltdoc="x">dict-ref</a></span> (i.e., it is either a thunk that computes a value
|
||
|
or a plain value), and this result is stored in <span class="RktVar">dict</span> for the
|
||
|
<span class="RktVar">key</span>. (Note that if <span class="RktVar">to-set</span> is a thunk, it is not
|
||
|
invoked in tail position.)</div></p><p>Supported for any <span class="RktVar">dict</span> that implements <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-ref%29%29" class="RktValLink" data-pltdoc="x">dict-ref</a></span> and
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%21%29%29" class="RktValLink" data-pltdoc="x">dict-set!</a></span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-ref%21%29%29" class="RktValLink" data-pltdoc="x">dict-ref!</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._make-hasheq%29%29" class="RktValLink" data-pltdoc="x">make-hasheq</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"apple"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"beer"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">"apple"</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-ref%21%29%29" class="RktValLink" data-pltdoc="x">dict-ref!</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._make-hasheq%29%29" class="RktValLink" data-pltdoc="x">make-hasheq</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"apple"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"beer"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">c</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">cabbage</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'cabbage</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._make-hasheq%29%29" class="RktValLink" data-pltdoc="x">make-hasheq</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"apple"</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"beer"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdic
|
||
|
existing mapping in <span class="RktVar">dict</span>, where the optional <span class="RktVar">failure-result</span>
|
||
|
argument is used as in <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-ref%29%29" class="RktValLink" data-pltdoc="x">dict-ref</a></span> when no mapping exists for
|
||
|
<span class="RktVar">key</span> already.</div></p><p>Supported for any <span class="RktVar">dict</span> that implements <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-ref%29%29" class="RktValLink" data-pltdoc="x">dict-ref</a></span> and
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%21%29%29" class="RktValLink" data-pltdoc="x">dict-set!</a></span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._make-hash%29%29" class="RktValLink" data-pltdoc="x">make-hash</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-update%21%29%29" class="RktValLink" data-pltdoc="x">dict-update!</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktSym"><a href="generic-numbers.html#%28def._%28%28quote._~23~25kernel%29._add1%29%29" class="RktValLink" data-pltdoc="x">add1</a></span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktErr">hash-update!: no value found for key: 'a</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-update%21%29%29" class="RktValLink" data-pltdoc="x">dict-update!</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktSym"><a href="generic-numbers.html#%28def._%28%28quote._~23~25kernel%29._add1%29%29" class="RktValLink" data-pltdoc="x">add1</a></span><span class="hspace"> </span><span class="RktVal">0</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktSym">h</span></td></tr><tr><td><p><span class="RktRes">'#hash((a . 1))</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">v</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="vectors.html#%28def._%28%28quote._~23~25kernel%29._vector%29%29" class="RktValLink" data-pltdoc="x">vector</a></span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktVal">#f</span><span class="hspace"> </span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-update%21%29%29" class="RktValLink" data-pltdoc="x">dict-update!</a></span><span class="hspace"> </span><span class="RktSym">v</span><span class="hspace"> </span><span class="RktVal">0</span><span class="hspace"> </span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._not%29%29" class="RktValLink" data-pltdoc="x">not</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktSym">v</span></td></tr><tr><td><p><span class="RktRes">'#(#t #f #f)</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden">
|
||
|
update an existing mapping in <span class="RktVar">dict</span>, where the optional <span class="RktVar">failure-result</span>
|
||
|
argument is used as in <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-ref%29%29" class="RktValLink" data-pltdoc="x">dict-ref</a></span> when no mapping exists for
|
||
|
<span class="RktVar">key</span> already.</div></p><p>Supported for any <span class="RktVar">dict</span> that implements <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-ref%29%29" class="RktValLink" data-pltdoc="x">dict-ref</a></span> and
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%29%29" class="RktValLink" data-pltdoc="x">dict-set</a></span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-update%29%29" class="RktValLink" data-pltdoc="x">dict-update</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktSym"><a href="generic-numbers.html#%28def._%28%28quote._~23~25kernel%29._add1%29%29" class="RktValLink" data-pltdoc="x">add1</a></span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktErr">hash-update: no value found for key: 'a</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-update%29%29" class="RktValLink" data-pltdoc="x">dict-update</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktSym"><a href="generic-numbers.html#%28def._%28%28quote._~23~25kernel%29._add1%29%29" class="RktValLink" data-pltdoc="x">add1</a></span><span class="hspace"> </span><span class="RktVal">0</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'#hash((a . 1))</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-update%29%29" class="RktValLink" data-pltdoc="x">dict-update</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"beer"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string-length%29%29" class="RktValLink" data-pltdoc="x">string-length</a></span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'#hash((a . "apple") (b . 4))</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-map))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-map%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-map</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span><span class="RktVar">proc</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._listof%29%29" class="RktValLink" data-pltdoc="x">listof</a></span><span class
|
||
|
<span class="RktVar">dict</span> in an unspecified order, accumulating the results
|
||
|
into a list. The procedure <span class="RktVar">proc</span> is called each time with a
|
||
|
key and its value.</div></p><p>Supported for any <span class="RktVar">dict</span> that implements <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span>,
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span>, <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-key%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-key</a></span>, and
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-value%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-value</a></span>.</p><p><div class="SIntrapara">Example:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-map%29%29" class="RktValLink" data-pltdoc="x">dict-map</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"banana"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktSym"><a href="vectors.html#%28def._%28%28quote._~23~25kernel%29._vector%29%29" class="RktValLink" data-pltdoc="x">vector</a></span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'(#(b "banana") #(a "apple"))</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-map/copy))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-map%2Fcopy%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-map/copy</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span><span class="RktVar">proc</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">proc</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace"> </span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktSym"><a href="function-contracts.html#%28form._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._-~3e%29%29" class="RktStxLink" data-pltdoc="x"><span class="nobreak">-></span></a></span><span class="RktPn"> .</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="values.html#%28def._%28%28quote._~23~25kernel%29._values%29%29" class="RktValLink" data-pltdoc="x">values</a></span><span class="hspace"> </span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace"> </span><span class
|
||
|
<span class="RktVar">dict</span> in an unspecified order, accumulating the results
|
||
|
into a dict of the same kind.
|
||
|
The procedure <span class="RktVar">proc</span> is called each time with a key
|
||
|
and its value, and must return a corresponding key and
|
||
|
value.</div></p><p>Supported for any <span class="RktVar">dict</span> that implements
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span>, <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span>,
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-key%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-key</a></span>, and <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-value%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-value</a></span>,
|
||
|
and either <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%29%29" class="RktValLink" data-pltdoc="x">dict-set</a></span> and <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-clear%29%29" class="RktValLink" data-pltdoc="x">dict-clear</a></span>, or
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%21%29%29" class="RktValLink" data-pltdoc="x">dict-set!</a></span>, <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-copy%29%29" class="RktValLink" data-pltdoc="x">dict-copy</a></span>, and
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-clear%21%29%29" class="RktValLink" data-pltdoc="x">dict-clear!</a></span>.</p><p><div class="SIntrapara">Example:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-map%2Fcopy%29%29" class="RktValLink" data-pltdoc="x">dict-map/copy</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"banana"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._lambda%29%29" class="RktStxLink" data-pltdoc="x">lambda</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">k</span><span class="hspace"> </span><span class="RktSym">v</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="values.html#%28def._%28%28quote._~23~25kernel%29._values%29%29" class="RktValLink" data-pltdoc="x">values</a></span><span class="hspace"> </span><span class="RktSym">k</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string-upcase%29%29" class="RktValLink" data-pltdoc="x">string-upcase</a></span><span class="hspace"> </span><span class="RktSym">v</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'#hash((a . "APPLE") (b . "BANANA"))</span></p></td></tr></table></blockquote></div></p><p class="SHistory">Added in version 8.5.0.2 of package <span class="stt">base</span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-for-each))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-for-each%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-for-each</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span><span class="RktVar">proc</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">proc</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktValLink" data-pltdoc="x">any/c</a></span><span class="hspace"> </span><s
|
||
|
side-effects of <span class="RktVar">proc</span>) in an unspecified order. The procedure
|
||
|
<span class="RktVar">proc</span> is called each time with a key and its value.</div></p><p>Supported for any <span class="RktVar">dict</span> that implements <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span>,
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span>, <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-key%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-key</a></span>, and
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-value%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-value</a></span>.</p><p><div class="SIntrapara">Example:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-for-each%29%29" class="RktValLink" data-pltdoc="x">dict-for-each</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"banana"</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._lambda%29%29" class="RktStxLink" data-pltdoc="x">lambda</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">k</span><span class="hspace"> </span><span class="RktSym">v</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="Writing.html#%28def._%28%28quote._~23~25kernel%29._printf%29%29" class="RktValLink" data-pltdoc="x">printf</a></span><span class="hspace"> </span><span class="RktVal">"~a = ~s\n"</span><span class="hspace"> </span><span class="RktSym">k</span><span class="hspace"> </span><span class="RktSym">v</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0"><tr><td><p><span class="RktOut">b = "banana"</span></p></td></tr><tr><td><p><span class="RktOut">a = "apple"</span></p></td></tr></table></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-empty~3f))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-empty~3f%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-empty?</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="booleans.html#%28def._%28%28quote._~23~25kernel%29._boolean~3f%29%29" class="RktValLink" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Reports whether <span class="RktVar">dict</span> is empty.</div></p><p>Supported for any <span class="RktVar">dict</span> that implements <span class="RktSym"><a href="dicts.html#%28def
|
||
|
constant time.</div></p><p>Supported for any <span class="RktVar">dict</span> that implements <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span>
|
||
|
and <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-count%29%29" class="RktValLink" data-pltdoc="x">dict-count</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"banana"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">2</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-count%29%29" class="RktValLink" data-pltdoc="x">dict-count</a></span><span class="hspace"> </span><span class="RktVal">#</span><span class="RktVal">(</span><span class="RktVal">"apple"</span><span class="hspace"> </span><span class="RktVal">"banana"</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">2</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-copy))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-copy%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-copy</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Produces a new, mutable dictionary of the same type as <span class="RktVar">dict</span> and with
|
||
|
the same key/value associations.</div></p><p>Supported for any <span class="RktVar">dict</span> that implements <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-clear%29%29" class="RktValLink" data-pltdoc="x">dict-clear</a></span>,
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%21%29%29" class="RktValLink" data-pltdoc="x">dict-set!</a></span>, <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span>, <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span>,
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-key%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-key</a></span>, and <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-value%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-value</a></span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">original</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="vectors.html#%28def._%28%28quote._~23~25kernel%29._vector%29%29" class="RktValLink" data-pltdoc="x">vector</a></span><span class="hspace"> </span><span class="RktVal">"apple"</span><span class="hspace"> </span><span class="RktVal">"banana"</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">copy</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-copy%29%29" class="RktValLink" data-pltdoc="x">dict-copy</a></span><span class="hspace"> </span><span class="RktSym">original</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktSym">original</span></td></tr><tr><td><p><span class="RktRes">'#("apple" "banana")</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktSym">copy</span></td></tr><tr><td><p><span class="RktRes">'#("apple" "banana")</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%21%29%29" class="RktValLink" data-pltdoc="x">dict-set!</a></span><span class="hspace"> </span><span class="RktSym">copy</span><span class="hspace"> </span><span class="RktVal">1</span><span class="hspace"> </span><span class="RktVal">"carrot"</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktSym">original</span></td></tr><tr><td><p><span class="RktRes">'#("apple" "banana")</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktSym">copy</span></td></tr><tr><td><p><span class="RktRes">'#("apple" "carrot")</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-clear))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-clear%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-clear</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a
|
||
|
<span class="RktVar">dict</span> is mutable, the result must be a new dictionary.</div></p><p>Supported for any <span class="RktVar">dict</span> that supports <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-remove%29%29" class="RktValLink" data-pltdoc="x">dict-remove</a></span>,
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span>, <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span>, and
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-key%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-key</a></span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-clear%29%29" class="RktValLink" data-pltdoc="x">dict-clear</a></span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">"banana"</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktSym">b</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'#hash()</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-clear%29%29" class="RktValLink" data-pltdoc="x">dict-clear</a></span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">1</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">two</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">three</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">"four"</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'()</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-clear!))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-clear%21%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-clear!</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Removes all of the key/value associations in <span class="RktVar">dict</span>.</div></p><p>Supported for any <span class="RktVar">dict</span> that supports <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-remove%21%29%29" class="RktValLink" data-pltdoc="x">dict-remove!</a></span>,
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span>, and <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-key%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-key</a></span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">table</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._make-hash%29%29" class="RktValLink" data-pltdoc="x">make-hash</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%21%29%29" class="RktValLink" data-pltdoc="x">dict-set!</a></span><span class="hspace"> </span><span class="RktSym">table</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktVal">"apple"</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-set%21%29%29" class="RktValLink" data-pltdoc="x">dict-set!</a></span><span class="hspace"> </span><span class="RktSym">table</span><span class="hspace"> </span><span class="RktVal">"banana"</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">b</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktSym">table</span></td></tr><tr><td><p><span class="RktRes">'#hash((a . "apple") ("banana" . b))</span></p></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-clear%21%29%29" class="RktValLink" data-pltdoc="x">dict-clear!</a></span><span class="hspace"> </span><span class="RktSym">table</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktSym">table</span></td></tr><tr><td><p><span class="RktRes">'#hash()</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-keys))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-keys%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-keys</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="pairs.html#%28def._%28%28quote._~23~25kernel%29._list~3f%29%29" class="RktValLink" data-pltdoc="x">list?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns a list of the keys from
|
||
|
<span class="RktVar">dict</span> in an unspecified order.</div></p><p>Supported for any <span class="RktVar">dict</span> that implements <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span>,
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span>, and <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-key%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-key</a></span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"banana"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-keys%29%29" class="RktValLink" data-pltdoc="x">dict-keys</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'(b a)</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-values))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-values%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-values</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="pairs.html#%28def._%28%28quote._~23~25kernel%29._list~3f%29%29" class="RktValLink" data-pltdoc="x">list?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns a list of the values from
|
||
|
<span class="RktVar">dict</span> in an unspecified order.</div></p><p>Supported for any <span class="RktVar">dict</span> that implements <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span>,
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span>, and <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-value%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-value</a></span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"banana"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-values%29%29" class="RktValLink" data-pltdoc="x">dict-values</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'("banana" "apple")</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-~3elist))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-~3elist%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict->list</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="pairs.html#%28def._%28%28quote._~23~25kernel%29._list~3f%29%29" class="RktValLink" data-pltdoc="x">list?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns a list of the associations from
|
||
|
<span class="RktVar">dict</span> in an unspecified order.</div></p><p>Supported for any <span class="RktVar">dict</span> that implements <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span>,
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span>, <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-key%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-key</a></span>, and
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-value%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-value</a></span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"banana"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-~3elist%29%29" class="RktValLink" data-pltdoc="x">dict->list</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="RktPn">)</span></td></tr><tr><td><p><span class="RktRes">'((b . "banana") (a . "apple"))</span></p></td></tr></table></blockquote></div></p><h5 x-source-module="(lib "scribblings/reference/reference.scrbl")" x-source-pkg="racket-doc" x-part-tag=""Dictionary_Sequences"">4.17.3<tt> </tt><a name="(part._.Dictionary_.Sequences)"></a>Dictionary Sequences</h5><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._in-dict))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._in-dict%29%29" class="RktValDef RktValLink" data-pltdoc="x">in-dict</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="sequences.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._sequence~3f%29%29" class="RktValLink" data-pltdoc="x">sequence?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></td></tr></table></blockquote></div><div class="SIntrapara"> Returns a <a href="sequences.html#%28tech._sequence%29" class="techoutside" data-pltdoc="x"><span class="techinside">sequence</span></a>
|
||
|
whose each element is two values: a key and corresponding value from
|
||
|
<span class="RktVar">dict</span>.</div></p><p>Supported for any <span class="RktVar">dict</span> that implements <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span>,
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span>, <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-key%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-key</a></span>, and
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-value%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-value</a></span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"banana"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="for.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._for%2Flist%29%29" class="RktStxLink" data-pltdoc="x">for/list</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">[</span><span class="RktPn">(</span><span class="RktSym">k</span><span class="hspace"> </span><span class="RktSym">v</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._in-dict%29%29" class="RktValLink" data-pltdoc="x">in-dict</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="RktPn">)</span><span class="RktPn">]</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="Writing.html#%28def._%28%28quote._~23~25kernel%29._format%29%29" class="RktValLink" data-pltdoc="x">format</a></span><span class="hspace"> </span><span class="RktVal">"~a = ~s"</span><span class="hspace"> </span><span class="RktSym">k</span><span class="hspace"> </span><span class="RktSym">v</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><p><span class="RktRes">'("b = \"banana\"" "a = \"apple\"")</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._in-dict-keys))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._in-dict-keys%29%29" class="RktValDef RktValLink" data-pltdoc="x">in-dict-keys</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="sequences.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._sequence~3f%29%29" class="RktValLink" data-pltdoc="x">sequence?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns a sequ
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span>, and <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-key%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-key</a></span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"banana"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="for.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._for%2Flist%29%29" class="RktStxLink" data-pltdoc="x">for/list</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">[</span><span class="RktSym">k</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._in-dict-keys%29%29" class="RktValLink" data-pltdoc="x">in-dict-keys</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="RktPn">)</span><span class="RktPn">]</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktSym">k</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><p><span class="RktRes">'(b a)</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._in-dict-values))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._in-dict-values%29%29" class="RktValDef RktValLink" data-pltdoc="x">in-dict-values</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="sequences.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._sequence~3f%29%29" class="RktValLink" data-pltdoc="x">sequence?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns a sequence whose elements are the values of <span class="RktVar">dict</span>.</div></p><p>Supported for any <span class="RktVar">dict</span> that implements <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span>,
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span>, and <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-value%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-value</a></span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"banana"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="for.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._for%2Flist%29%29" class="RktStxLink" data-pltdoc="x">for/list</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">[</span><span class="RktSym">v</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._in-dict-values%29%29" class="RktValLink" data-pltdoc="x">in-dict-values</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="RktPn">)</span><span class="RktPn">]</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktSym">v</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><p><span class="RktRes">'("banana" "apple")</span></p></td></tr></table></blockquote></div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._in-dict-pairs))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._in-dict-pairs%29%29" class="RktValDef RktValLink" data-pltdoc="x">in-dict-pairs</a></span></span><span class="hspace"> </span><span class="RktVar">dict</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="sequences.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._sequence~3f%29%29" class="RktValLink" data-pltdoc="x">sequence?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">dict</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></td></tr></table></blockquote></div><div class="SIntrapara"> Returns a sequence
|
||
|
whose elements are pairs, each containing a key and its value from
|
||
|
<span class="RktVar">dict</span> (as opposed to using <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._in-dict%29%29" class="RktValLink" data-pltdoc="x">in-dict</a></span>, which gets the
|
||
|
key and value as separate values for each element).</div></p><p>Supported for any <span class="RktVar">dict</span> that implements <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-first%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-first</a></span>,
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-next%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-next</a></span>, <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-key%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-key</a></span>, and
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iterate-value%29%29" class="RktValLink" data-pltdoc="x">dict-iterate-value</a></span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktVal">#hash</span><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktVal">a</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"apple"</span><span class="RktPn">)</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktVal">b</span><span class="hspace"> </span><span class="RktPn">. </span><span class="RktVal">"banana"</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="for.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._for%2Flist%29%29" class="RktStxLink" data-pltdoc="x">for/list</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktPn">[</span><span class="RktSym">p</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._in-dict-pairs%29%29" class="RktValLink" data-pltdoc="x">in-dict-pairs</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="RktPn">)</span><span class="RktPn">]</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktSym">p</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><p><span class="RktRes">'((b . "banana") (a . "apple"))</span></p></td></tr></table></blockquote></div></p><h5 x-source-module="(lib "scribblings/reference/reference.scrbl")" x-source-pkg="racket-doc" x-part-tag=""Contracted_Dictionaries"">4.17.4<tt> </tt><a name="(part._.Contracted_.Dictionaries)"></a>Contracted Dictionaries</h5><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>value</p></div></div><p class="RForeground"><a name="(def._((lib._racket/dict..rkt)._prop~3adict/contract))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._prop~3adict%2Fcontract%29%29" class="RktValDef RktValLink" data-pltdoc="x">prop:dict/contract</a></span></span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="structprops.html#%28def._%28%28quote._~23~25kernel%29._struct-type-property~3f%29%29" class="RktValLink" data-pltdoc="x">struct-type-property?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">A structure type property for defining dictionaries with
|
||
|
contracts. The value associated with <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._prop~3adict%2Fcontract%29%29" class="RktValLink" data-pltdoc="x">prop:dict/contract</a></span> must
|
||
|
be a list of two immutable vectors:</div></p><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="pairs.html#%28def._%28%28quote._~23~25kernel%29._list%29%29" class="RktValLink" data-pltdoc="x">list</a></span><span class="hspace"> </span><span class="RktVar">dict-vector</span></td></tr><tr><td><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="vectors.html#%28def._%28%28quote._~23~25kernel%29._vector%29%29" class="RktValLink" data-pltdoc="x">vector</a></span><span class="hspace"> </span><span class="RktVar">type-key-contract</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">type-value-contract</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">type-iter-contract</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">instance-key-contract</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">instance-value-contract</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">instance-iter-contract</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></blockquote><p>The first vector must be a vector of 10 procedures which match the
|
||
|
<span class="RktSym"><a href="dicts.html#%28form._%28%28lib._racket%2Fdict..rkt%29._gen~3adict%29%29" class="RktStxLink" data-pltdoc="x">gen:dict</a></span> <a href="struct-generics.html#%28tech._generic._interface%29" class="techoutside" data-pltdoc="x"><span class="techinside">generic interface</span></a> (in addition, it must be an
|
||
|
immutable vector). The second vector must contain six elements; each
|
||
|
of the first three is a contract for the dictionary type’s keys,
|
||
|
values, and positions, respectively. Each of the second three is
|
||
|
either <span class="RktVal">#f</span> or a procedure used to extract the contract from
|
||
|
a dictionary instance.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-key-contract))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-key-contract%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-key-contract</a></span></span><span class="hspace"> </span><span class="RktVar">d</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="contract-utilities.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fguts..rkt%29._contract~3f%29%29" class="RktValLink" data-pltdoc="x">contract?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">d</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-value-contract))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-value-contract%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-value-contract</a></span></span><span class="hspace"> </span><span class="RktVar">d</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="contract-utilities.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fguts..rkt%29._contract~3f%29%29" class="RktValLink" data-pltdoc="x">contract?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">d</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._dict-iter-contract))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict-iter-contract%29%29" class="RktValDef RktValLink" data-pltdoc="x">dict-iter-contract</a></span></span><span class="hspace"> </span><span class="RktVar">d</span><span class="RktPn">)</span><span class="hspace"> </span>→<span class="hspace"> </span><span class="RktSym"><a href="contract-utilities.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fguts..rkt%29._contract~3f%29%29" class="RktValLink" data-pltdoc="x">contract?</a></span></p></blockquote></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">d</span><span class="hspace"> </span>:<span class="hspace"> </span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></td></tr></table></td></tr></table></blockquote></div><div class="SIntrapara">Returns the contract that <span class="RktVar">d</spa
|
||
|
iterators, respectively, if <span class="RktVar">d</span> implements the
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._prop~3adict%2Fcontract%29%29" class="RktValLink" data-pltdoc="x">prop:dict/contract</a></span> interface.</div></p><h5 x-source-module="(lib "scribblings/reference/reference.scrbl")" x-source-pkg="racket-doc" x-part-tag=""Custom_Hash_Tables"">4.17.5<tt> </tt><a name="(part._.Custom_.Hash_.Tables)"></a>Custom Hash Tables</h5><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><table cellspacing="0" cellpadding="0" class="RktBlk RForeground"><tr><td><span class="RktPn">(</span><a name="(form._((lib._racket/dict..rkt)._define-custom-hash-types))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28form._%28%28lib._racket%2Fdict..rkt%29._define-custom-hash-types%29%29" class="RktStxDef RktStxLink" data-pltdoc="x">define-custom-hash-types</a></span></span><span class="hspace"> </span><span class="RktVar">name</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">optional-predicate</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">comparison-expr</span></td></tr><tr><td><span class="hspace"> </span><span class="RktVar">optional-hash-functions</span><span class="RktPn">)</span></td></tr></table></blockquote></td></tr><tr><td><span class="stt"> </span></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="specgrammar"><tr><td align="right" valign="baseline"><span class="RktVar">optional-predicate</span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">=</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td></td></tr></table></td></tr><tr><td align="right" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">|</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktPn">#:key?</span><span class="hspace"> </span><span class="RktVar">predicate-expr</span></td></tr><tr><td align="right" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td></tr><tr><td align="right" valign="baseline"><span class="RktVar">optional-hash-functions</span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">=</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td></td></tr></table></td></tr><tr><td align="right" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="center" valign="baseline">|</td><td align="left" valign="baseline"><span class="stt"> </span></td><td align="left" valign="baseline"><span class="RktVar">hash1-expr</span></td></tr><tr><td align="right" valign="ba
|
||
|
<span class="RktVar">comparison-expr</span>, hash functions <span class="RktVar">hash1-expr</span> and
|
||
|
<span class="RktVar">hash2-expr</span>, and key predicate <span class="RktVar">predicate-expr</span>; the interfaces
|
||
|
for these functions are the same as in <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._make-custom-hash-types%29%29" class="RktValLink" data-pltdoc="x">make-custom-hash-types</a></span>.
|
||
|
The new dictionary type has three variants: immutable, mutable with
|
||
|
strongly-held keys, and mutable with weakly-held keys.</div></p><p>Defines seven names:</p><ul><li><p><span class="RktVar">name</span><span class="RktSym">?</span> recognizes instances of the new type,</p></li><li><p><span class="RktSym">immutable-</span><span class="RktVar">name</span><span class="RktSym">?</span> recognizes
|
||
|
immutable instances of the new type,</p></li><li><p><span class="RktSym">mutable-</span><span class="RktVar">name</span><span class="RktSym">?</span> recognizes
|
||
|
mutable instances of the new type with strongly-held keys,</p></li><li><p><span class="RktSym">weak-</span><span class="RktVar">name</span><span class="RktSym">?</span> recognizes
|
||
|
mutable instances of the new type with weakly-held keys,</p></li><li><p><span class="RktSym">make-immutable-</span><span class="RktVar">name</span> constructs
|
||
|
immutable instances of the new type,</p></li><li><p><span class="RktSym">make-mutable-</span><span class="RktVar">name</span> constructs
|
||
|
mutable instances of the new type with strongly-held keys, and</p></li><li><p><span class="RktSym">make-weak-</span><span class="RktVar">name</span> constructs
|
||
|
mutable instances of the new type with weakly-held keys.</p></li></ul><p>The constructors all accept a dictionary as an optional argument, providing
|
||
|
initial key/value pairs.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28form._%28%28lib._racket%2Fdict..rkt%29._define-custom-hash-types%29%29" class="RktStxLink" data-pltdoc="x">define-custom-hash-types</a></span><span class="hspace"> </span><span class="RktSym">string-hash</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">#:key?</span><span class="hspace"> </span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3d~3f%29%29" class="RktValLink" data-pltdoc="x">string=?</a></span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string-length%29%29" class="RktValLink" data-pltdoc="x">string-length</a></span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">imm</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">make-immutable-string-hash</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">"apple"</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">a</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">"banana"</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">b</span><span class="RktVal">)</span><span class="RktVal">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">mut</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">make-mutable-string-hash</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">(</span><span class="RktVal">"apple"</span><span class="hspace"> </span><span class="RktVal">. </span><span class="RktVal">a</span><span class="RktVal">)</span><span class="hspace"> </span><span class="RktVal">(</span><span class="RktVal">"banana"</span><span class="hspace
|
||
|
<span class="RktVar">eql?</span>, hash functions <span class="RktVar">hash1</span> and <span class="RktVar">hash2</span>, and predicate
|
||
|
<span class="RktVar">key?</span>. The new dictionary type has variants that are immutable,
|
||
|
mutable with strongly-held keys, and mutable with weakly-held keys. The given
|
||
|
<span class="RktVar">name</span> is used when printing instances of the new dictionary type, and
|
||
|
the symbol <span class="RktVar">who</span> is used for reporting errors.</div></p><p>The comparison function <span class="RktVar">eql?</span> may accept 2 or 3 arguments. If it
|
||
|
accepts 2 arguments, it given two keys to compare them. If it accepts
|
||
|
3 arguments and does not accept 2 arguments, it is also given a
|
||
|
recursive comparison function that handles data cycles when comparing sub-parts
|
||
|
of the keys.</p><p>The hash functions <span class="RktVar">hash1</span> and <span class="RktVar">hash2</span> may accept 1 or 2
|
||
|
arguments. If either hash function accepts 1 argument, it is applied to a key
|
||
|
to compute the corresponding hash value. If either hash function accepts 2
|
||
|
arguments and does not accept 1 argument, it is also given a recursive hash
|
||
|
function that handles data cycles when computing hash values of sub-parts of
|
||
|
the keys.</p><p>The predicate <span class="RktVar">key?</span> must accept 1 argument and is used to recognize
|
||
|
valid keys for the new dictionary type.</p><p>Produces seven values:</p><ul><li><p>a predicate recognizing all instances of the new dictionary type,</p></li><li><p>a predicate recognizing immutable instances,</p></li><li><p>a predicate recognizing mutable instances,</p></li><li><p>a predicate recognizing weak instances,</p></li><li><p>a constructor for immutable instances,</p></li><li><p>a constructor for mutable instances, and</p></li><li><p>a constructor for weak instances.</p></li></ul><p>See <span class="RktSym"><a href="dicts.html#%28form._%28%28lib._racket%2Fdict..rkt%29._define-custom-hash-types%29%29" class="RktStxLink" data-pltdoc="x">define-custom-hash-types</a></span> for an example.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><table cellspacing="0" cellpadding="0" class="together"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><table cellspacing="0" cellpadding="0" class="prototype RForeground"><tr><td valign="top"><span class="RktPn">(</span><a name="(def._((lib._racket/dict..rkt)._make-custom-hash))"></a><span title="Provided from: racket/dict, racket | Package: base"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._make-custom-hash%29%29" class="RktValDef RktValLink" data-pltdoc="x">make-custom-hash</a></span></span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">eql?</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span><span class="RktOpt">[</span></td><td valign="top"><span class="RktVar">hash1</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">hash2</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td></tr><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktPn">#:key?</span><span class="hspace"> </span><span class="RktVar">key?</span><span class="RktOpt">]</span><span class="RktPn">)</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">→</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._dict~3f%29%29" class="RktValLink" data-pltdoc="x">dict?</a></span></td></tr></table></blockquote></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace"> </span></td><td valign="top"><span class="RktVar">eql?</span></td><td valign="top"><span class="hspace"> </span></td><td valign="top">:</td><td valign="top"><span class="hspace"> </span></td><td valign="top"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fbase..rkt%29._or%2Fc%29%29" class="RktValLink" data-pltdoc="x">or/c</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="data-structure-contracts.html#%28def._%28%28lib._racket%2Fcontract%2Fprivate%2Fmisc..rkt%29._any%2Fc%29%29" class="RktVa
|
||
|
in terms of a hash table where keys are compared with
|
||
|
<span class="RktVar">eql?</span>, hashed with <span class="RktVar">hash1</span> and
|
||
|
<span class="RktVar">hash2</span>, and where the key predicate is
|
||
|
<span class="RktVar">key?</span>. See <span class="RktSym">gen:equal</span> and <span class="RktSym"><a href="Equality.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._gen~3aequal%2Bhash%29%29" class="RktValLink" data-pltdoc="x">gen:equal+hash</a></span> for information
|
||
|
on suitable equality and hashing functions.</div></p><p>The <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._make-custom-hash%29%29" class="RktValLink" data-pltdoc="x">make-custom-hash</a></span> and <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._make-weak-custom-hash%29%29" class="RktValLink" data-pltdoc="x">make-weak-custom-hash</a></span>
|
||
|
functions create a mutable dictionary that does not support functional
|
||
|
update, while <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._make-immutable-custom-hash%29%29" class="RktValLink" data-pltdoc="x">make-immutable-custom-hash</a></span> creates an immutable
|
||
|
dictionary that supports functional update. The dictionary created by
|
||
|
<span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._make-weak-custom-hash%29%29" class="RktValLink" data-pltdoc="x">make-weak-custom-hash</a></span> retains its keys weakly, like the result
|
||
|
of <span class="RktSym"><a href="hashtables.html#%28def._%28%28quote._~23~25kernel%29._make-weak-hash%29%29" class="RktValLink" data-pltdoc="x">make-weak-hash</a></span>.</p><p>Dictionaries created by <span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._make-custom-hash%29%29" class="RktValLink" data-pltdoc="x">make-custom-hash</a></span> and company are
|
||
|
<span class="RktSym"><a href="Equality.html#%28def._%28%28quote._~23~25kernel%29._equal~3f%29%29" class="RktValLink" data-pltdoc="x">equal?</a></span> when they have the same mutability and key strength,
|
||
|
the associated procedures are <span class="RktSym"><a href="Equality.html#%28def._%28%28quote._~23~25kernel%29._equal~3f%29%29" class="RktValLink" data-pltdoc="x">equal?</a></span>, and the key–value
|
||
|
mappings are the same when keys and values are compared with
|
||
|
<span class="RktSym"><a href="Equality.html#%28def._%28%28quote._~23~25kernel%29._equal~3f%29%29" class="RktValLink" data-pltdoc="x">equal?</a></span>.</p><p>See also <span class="RktSym"><a href="dicts.html#%28form._%28%28lib._racket%2Fdict..rkt%29._define-custom-hash-types%29%29" class="RktStxLink" data-pltdoc="x">define-custom-hash-types</a></span>.</p><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktSym">h</span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="dicts.html#%28def._%28%28lib._racket%2Fdict..rkt%29._make-custom-hash%29%29" class="RktValLink" data-pltdoc="x">make-custom-hash</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._lambda%29%29" class="RktStxLink" data-pltdoc="x">lambda</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">a</span><span class="hspace"> </span><span class="RktSym">b</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="strings.html#%28def._%28%28quote._~23~25kernel%29._string~3d~3f%29%29" class="RktValLink" data-pltdoc="x">string=?</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="Writing.html#%28def._%28%28quote._~23~25kernel%29._format%29%29" class="RktValLink" data-pltdoc="x">format</a></span><span class="hspace"> </span><span class="RktVal">"~a"</span><span class="hspace"> </span><span class="RktSym">a</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="Writing.html#%28def._%28%28quote._~23~25kernel%29._format%29%29" class="RktValLink" data-pltdoc="x">format</a></span><span class="hspace"> </span><span class="RktVal">"~a"</span><span class="hspace"> </span><span class="RktSym">b</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._lambda%29%29" class="RktStxLink" data-pltdoc="x">lambda</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">a</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="Equality.html#%28def._%28%28quote._~23~25kernel%29._equal-hash-code%29%29" class="RktValLink" data-pltdoc="x">equal-hash-code</a></span></td></tr><tr><td><span class="hspace"> &nb
|
||
|
from <span class="RktPn">(</span><span class="RktSym"><a href="pairs.html#%28def._%28%28quote._~23~25kernel%29._list%2A%29%29" class="RktValLink" data-pltdoc="x">list*</a></span><span class="stt"> </span><span class="RktVar">pos-arg</span><span class="stt"> </span><span class="RktSym"><a href="stx-patterns.html#%28form._%28%28lib._racket%2Fprivate%2Fstxcase-scheme..rkt%29._......%29%29" class="RktStxLink" data-pltdoc="x">...</a></span><span class="stt"> </span><span class="RktVar">pos-args</span><span class="RktPn">)</span>, and the keyword
|
||
|
arguments from <span class="RktVar">kw-dict</span> in addition to the directly
|
||
|
supplied keyword arguments in the <span class="RktPn">#:<kw></span><span class="stt"> </span><span class="RktVar">kw-arg</span>
|
||
|
sequence.</div></p><p>All the keys in <span class="RktVar">kw-dict</span> must be keywords.
|
||
|
The keywords in the <span class="RktVar">kw-dict</span> do not have to be
|
||
|
sorted. However, the keywords in <span class="RktVar">kw-dict</span> and the
|
||
|
directly supplied <span class="RktPn">#:<kw></span> keywords must not overlap.
|
||
|
The given <span class="RktVar">proc</span> must accept all of the keywords in
|
||
|
<span class="RktVar">kw-dict</span> plus the <span class="RktPn">#:<kw></span>s.</p><p><div class="SIntrapara"><p><div class="SIntrapara">Examples:</div><div class="SIntrapara"><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="stt">> </span><span class="RktPn">(</span><span class="RktSym"><a href="define.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._define%29%29" class="RktStxLink" data-pltdoc="x">define</a></span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym">sundae</span><span class="hspace"> </span><span class="RktPn">#:ice-cream</span><span class="hspace"> </span><span class="RktPn">[</span><span class="RktSym">ice-cream</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">"vanilla"</span><span class="RktVal">)</span><span class="RktPn">]</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">#:toppings</span><span class="hspace"> </span><span class="RktPn">[</span><span class="RktSym">toppings</span><span class="hspace"> </span><span class="RktVal">'</span><span class="RktVal">(</span><span class="RktVal">"brownie-bits"</span><span class="RktVal">)</span><span class="RktPn">]</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">#:sprinkles</span><span class="hspace"> </span><span class="RktPn">[</span><span class="RktSym">sprinkles</span><span class="hspace"> </span><span class="RktVal">"chocolate"</span><span class="RktPn">]</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">#:syrup</span><span class="hspace"> </span><span class="RktPn">[</span><span class="RktSym">syrup</span><span class="hspace"> </span><span class="RktVal">"caramel"</span><span class="RktPn">]</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="Writing.html#%28def._%28%28quote._~23~25kernel%29._format%29%29" class="RktValLink" data-pltdoc="x">format</a></span><span class="hspace"> </span><span class="RktVal">"A sundae with ~a ice cream, ~a, ~a sprinkles, and ~a syrup."</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="strings.html#%28def._%28%28lib._racket%2Fstring..rkt%29._string-join%29%29" class="RktValLink" data-pltdoc="x">string-join</a></span><span class="hspace"> </span><span class="RktSym">ice-cream</span><span class="hspace"> </span><span class="RktPn">#:before-last</span><span class="hspace"> </span><span class="RktVal">" and "</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktPn">(</span><span class="RktSym"><a href="strings.html#%28def._%28%28lib._racket%2Fstring..rkt%29._string-join%29%29" class="RktValLink" data-pltdoc="x">string-join</a></span><span class="hspace"> </span><span class="RktSym">toppings</span><span class="hspace"> </span><span class="RktPn">#:before-last</span><span class="hspace"> </span><span class="RktVal">" and "</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace"> </span><span class="hspace"> </span><span class="RktSym">
|