70 lines
5.4 KiB
HTML
70 lines
5.4 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: Accessor AREF</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="f_adju_1.htm">
|
|
<LINK REL=UP HREF="c_arrays.htm">
|
|
<LINK REL=NEXT HREF="f_ar_dim.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="f_adju_1.htm"><IMG WIDTH=40 HEIGHT=40 ALT="[Previous]" SRC="../Graphics/Prev.gif" ALIGN=Bottom></A><A REL=UP HREF="c_arrays.htm"><IMG WIDTH=40 HEIGHT=40 ALT="[Up]" SRC="../Graphics/Up.gif" ALIGN=Bottom></A><A REL=NEXT HREF="f_ar_dim.htm"><IMG WIDTH=40 HEIGHT=40 ALT="[Next]" SRC="../Graphics/Next.gif" ALIGN=Bottom></A></H1>
|
|
|
|
<HR>
|
|
|
|
<A NAME="aref"><I>Accessor</I> <B>AREF</B></A> <P>
|
|
<P><B>Syntax:</B><P>
|
|
<P>
|
|
|
|
<B>aref</B> <I>array <TT>&rest</TT> subscripts</I> => <I>element</I><P>
|
|
|
|
<TT>(setf (</TT><B>aref</B> <I>array <TT>&rest</TT> subscripts</I><TT>) </TT><I>new-element</I><TT>)</TT><P>
|
|
<P>
|
|
<P><B>Arguments and Values:</B><P>
|
|
<P>
|
|
<I>array</I>---an <A REL=DEFINITION HREF="26_glo_a.htm#array"><I>array</I></A>. <P>
|
|
<I>subscripts</I>---a <A REL=DEFINITION HREF="26_glo_l.htm#list"><I>list</I></A> of <I>valid array indices</I> for the <I>array</I>. <P>
|
|
<I>element</I>, <I>new-element</I>---an <A REL=DEFINITION HREF="26_glo_o.htm#object"><I>object</I></A>. <P>
|
|
<P><B>Description:</B><P>
|
|
<P>
|
|
<A REL=DEFINITION HREF="26_glo_a.htm#access"><I>Accesses</I></A> the <I>array</I> <A REL=DEFINITION HREF="26_glo_e.htm#element"><I>element</I></A> specified by the <I>subscripts</I>. If no <I>subscripts</I> are supplied and <I>array</I> is zero rank, <A REL=DEFINITION HREF="#aref"><B>aref</B></A> <A REL=DEFINITION HREF="26_glo_a.htm#access"><I>accesses</I></A> the sole element of <I>array</I>. <P>
|
|
<A REL=DEFINITION HREF="#aref"><B>aref</B></A> ignores <A REL=DEFINITION HREF="26_glo_f.htm#fill_pointer"><I>fill pointers</I></A>. It is permissible to use <A REL=DEFINITION HREF="#aref"><B>aref</B></A> to <A REL=DEFINITION HREF="26_glo_a.htm#access"><I>access</I></A> any <I>array</I> <A REL=DEFINITION HREF="26_glo_e.htm#element"><I>element</I></A>, whether <A REL=DEFINITION HREF="26_glo_a.htm#active"><I>active</I></A> or not. <P>
|
|
<P><B>Examples:</B><P>
|
|
<P>
|
|
If the variable <TT>foo</TT> names a 3-by-5 array, then the first index could be 0, 1, or 2, and then second index could be 0, 1, 2, 3, or 4. The array elements can be referred to by using the <A REL=DEFINITION HREF="26_glo_f.htm#function"><I>function</I></A> <A REL=DEFINITION HREF="#aref"><B>aref</B></A>; for example, <TT>(aref foo 2 1)</TT> refers to element (2, 1) of the array. <P>
|
|
<PRE>
|
|
(aref (setq alpha (make-array 4)) 3) => <A REL=DEFINITION HREF="26_glo_i.htm#implementation-dependent">implementation-dependent</A>
|
|
(setf (aref alpha 3) 'sirens) => SIRENS
|
|
(aref alpha 3) => SIRENS
|
|
(aref (setq beta (make-array '(2 4)
|
|
:element-type '(unsigned-byte 2)
|
|
:initial-contents '((0 1 2 3) (3 2 1 0))))
|
|
1 2) => 1
|
|
(setq gamma '(0 2))
|
|
(apply #'aref beta gamma) => 2
|
|
(setf (apply #'aref beta gamma) 3) => 3
|
|
(apply #'aref beta gamma) => 3
|
|
(aref beta 0 2) => 3
|
|
</PRE>
|
|
</TT> <P>
|
|
<P><B>Affected By:</B> None.
|
|
<P>
|
|
<P><B>Exceptional Situations:</B> None.
|
|
<P>
|
|
<P><B>See Also:</B><P>
|
|
<P>
|
|
<A REL=DEFINITION HREF="f_bt_sb.htm#bit"><B>bit</B></A>, <A REL=DEFINITION HREF="f_char_.htm#char"><B>char</B></A>, <A REL=DEFINITION HREF="f_elt.htm#elt"><B>elt</B></A>, <A REL=DEFINITION HREF="f_row_ma.htm#row-major-aref"><B>row-major-aref</B></A>, <A REL=DEFINITION HREF="f_svref.htm#svref"><B>svref</B></A>, <A REL=CHILD HREF="03_ba.htm">Section 3.2.1 (Compiler Terminology)</A> <P>
|
|
<P><B>Notes:</B> None.
|
|
<P>
|
|
<P><HR>The following <A REL=META HREF="../Front/X3J13Iss.htm">X3J13 cleanup issues</A>, <I>not part of the specification</I>, apply to this section:<P><UL><LI> <A REL=CHILD HREF="../Issues/iss083.htm">CONSTANT-MODIFICATION:DISALLOW</A><LI> <A REL=CHILD HREF="../Issues/iss014.htm">ARRAY-DIMENSION-LIMIT-IMPLICATIONS:ALL-FIXNUM</A><P></UL><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>
|