1
0
Fork 0
cl-sites/HyperSpec-7-0/HyperSpec/Body/06_abaf.htm
2024-04-01 10:24:07 +02:00

47 lines
5.2 KiB
HTML

<!-- Common Lisp HyperSpec (TM), version 7.0 generated by Kent M. Pitman on Mon, 11-Apr-2005 2:31am EDT -->
<HTML>
<HEAD>
<TITLE>CLHS: Section 6.1.2.1.6</TITLE>
<LINK HREF="../Data/clhs.css" REL="stylesheet" TYPE="text/css" />
<META HTTP-EQUIV="Author" CONTENT="Kent M. Pitman">
<META HTTP-EQUIV="Organization" CONTENT="LispWorks Ltd.">
<LINK REL=TOP HREF="../Front/index.htm">
<LINK REL=COPYRIGHT HREF="../Front/Help.htm#Legal">
<LINK REL=DISCLAIMER HREF="../Front/Help.htm#Disclaimer">
<LINK REL=PREV HREF="06_abaea.htm">
<LINK REL=UP HREF="06_aba.htm">
<LINK REL=NEXT HREF="06_abag.htm">
</HEAD>
<BODY>
<H1><A REV=MADE HREF="http://www.lispworks.com/"><IMG WIDTH=80 HEIGHT=65 ALT="[LISPWORKS]" SRC="../Graphics/LWSmall.gif" ALIGN=Bottom></A><A REL=TOP HREF="../Front/index.htm"><IMG WIDTH=237 HEIGHT=65 ALT="[Common Lisp HyperSpec (TM)]" SRC="../Graphics/CLHS_Sm.gif" ALIGN=Bottom></A> <A REL=PREV HREF="06_abaea.htm"><IMG WIDTH=40 HEIGHT=40 ALT="[Previous]" SRC="../Graphics/Prev.gif" ALIGN=Bottom></A><A REL=UP HREF="06_aba.htm"><IMG WIDTH=40 HEIGHT=40 ALT="[Up]" SRC="../Graphics/Up.gif" ALIGN=Bottom></A><A REL=NEXT HREF="06_abag.htm"><IMG WIDTH=40 HEIGHT=40 ALT="[Next]" SRC="../Graphics/Next.gif" ALIGN=Bottom></A></H1>
<HR>
<H2>
6.1.2.1.6 The for-as-hash subclause</H2> <P>
In the <I>for-as-hash</I> subclause the <TT>for</TT> or <TT>as</TT> construct iterates over the elements, keys, and values of a <A REL=DEFINITION HREF="t_hash_t.htm#hash-table"><I>hash-table</I></A>. In this syntax, a compound preposition is used to designate access to a <A REL=DEFINITION HREF="26_glo_h.htm#hash_table"><I>hash table</I></A>. The variable <I>var</I> takes on the value of each hash key or hash value in the supplied <I>hash-table</I>. The following <A REL=DEFINITION HREF="26_glo_l.htm#loop_keyword"><I>loop keywords</I></A> serve as valid prepositions within this syntax: <P>
<P><DL><P>
<DT><TT>being</TT> <P><DD>
The keyword <TT>being</TT> introduces either the Loop schema <TT>hash-key</TT> or <TT>hash-value</TT>. <P>
<DT><TT>each</TT>, <TT>the</TT> <P><DD>
The <A REL=DEFINITION HREF="26_glo_l.htm#loop_keyword"><I>loop keyword</I></A> <TT>each</TT> follows the <A REL=DEFINITION HREF="26_glo_l.htm#loop_keyword"><I>loop keyword</I></A> <TT>being</TT> when <TT>hash-key</TT> or <TT>hash-value</TT> is used. The <A REL=DEFINITION HREF="26_glo_l.htm#loop_keyword"><I>loop keyword</I></A> <TT>the</TT> is used with <TT>hash-keys</TT> and <TT>hash-values</TT> only for ease of reading. This agreement isn't required. <P>
<DT><TT>hash-key</TT>, <TT>hash-keys</TT> <P><DD>
These <A REL=DEFINITION HREF="26_glo_l.htm#loop_keyword"><I>loop keywords</I></A> access each key entry of the <A REL=DEFINITION HREF="26_glo_h.htm#hash_table"><I>hash table</I></A>. If the name <TT>hash-value</TT> is supplied in a <TT>using</TT> construct with one of these Loop schemas, the iteration can optionally access the keyed value. The order in which the keys are accessed is undefined; empty slots in the <A REL=DEFINITION HREF="26_glo_h.htm#hash_table"><I>hash table</I></A> are ignored. <P>
<DT><TT>hash-value</TT>, <TT>hash-values</TT> <P><DD>
These <A REL=DEFINITION HREF="26_glo_l.htm#loop_keyword"><I>loop keywords</I></A> access each value entry of a <A REL=DEFINITION HREF="26_glo_h.htm#hash_table"><I>hash table</I></A>. If the name <TT>hash-key</TT> is supplied in a <TT>using</TT> construct with one of these Loop schemas, the iteration can optionally access the key that corresponds to the value. The order in which the keys are accessed is undefined; empty slots in the <A REL=DEFINITION HREF="26_glo_h.htm#hash_table"><I>hash table</I></A> are ignored. <P>
<DT><TT>using</TT> <P><DD>
The <A REL=DEFINITION HREF="26_glo_l.htm#loop_keyword"><I>loop keyword</I></A> <TT>using</TT> introduces the optional key or the keyed value to be accessed. It allows access to the hash key if iteration is over the hash values, and the hash value if iteration is over the hash keys. <P>
<DT><TT>in</TT>, <TT>of</TT> <P><DD>
These loop prepositions introduce <I>hash-table</I>. <P>
<P></DL><P>
In effect <P>
<TT>being</TT> {<TT>each</TT> | <TT>the</TT>} {<TT>hash-value</TT> | <TT>hash-values</TT> | <TT>hash-key</TT> | <TT>hash-keys</TT>} {<TT>in</TT> | <TT>of</TT>} <P>
is a compound preposition. <P>
Iteration stops when there are no more hash keys or hash values to be referenced in the supplied <I>hash-table</I>. <P>
<HR>
<A REL=NAVIGATOR HREF="../Front/StartPts.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Starting Points]" SRC="../Graphics/StartPts.gif" ALIGN=Bottom></A><A REL=TOC HREF="../Front/Contents.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Contents]" SRC="../Graphics/Contents.gif" ALIGN=Bottom></A><A REL=INDEX HREF="../Front/X_Master.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Index]" SRC="../Graphics/Index.gif" ALIGN=Bottom></A><A REL=INDEX HREF="../Front/X_Symbol.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Symbols]" SRC="../Graphics/Symbols.gif" ALIGN=Bottom></A><A REL=GLOSSARY HREF="../Body/26_a.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Glossary]" SRC="../Graphics/Glossary.gif" ALIGN=Bottom></A><A HREF="../Front/X3J13Iss.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Issues]" SRC="../Graphics/Issues.gif" ALIGN=Bottom></A><BR>
<A REL=COPYRIGHT HREF="../Front/Help.htm#Legal"><I>Copyright 1996-2005, LispWorks Ltd. All rights reserved.</I></A><P>
</BODY>
</HTML>