summaryrefslogtreecommitdiff
path: root/docsrc/xlisp/xlisp-doc/reference/aref.htm
diff options
context:
space:
mode:
Diffstat (limited to 'docsrc/xlisp/xlisp-doc/reference/aref.htm')
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/aref.htm105
1 files changed, 105 insertions, 0 deletions
diff --git a/docsrc/xlisp/xlisp-doc/reference/aref.htm b/docsrc/xlisp/xlisp-doc/reference/aref.htm
new file mode 100644
index 0000000..68ad742
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/aref.htm
@@ -0,0 +1,105 @@
+<html><head><title>XLISP aref</title>
+
+<link rel="stylesheet" type="text/css" href="reference.css">
+
+</head>
+
+<body>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+<hr>
+
+<h1>aref</h1>
+
+<hr>
+
+<p><table cellpadding="0" cellspacing="0" style="margin-left:10px"><tbody>
+<tr valign="top">
+ <td><nobr>Type:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>function (subr)</nobr></td>
+</tr>
+<tr valign="top">
+ <td><nobr>Source:</nobr></td>
+ <td><nobr>&nbsp;&nbsp;-&nbsp;&nbsp;</nobr></td>
+ <td width="100%"><nobr>xlbfun.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>aref</b> <i>array element</i>)</dt>
+<dd><i>array</i> - an array expression<br>
+<i>element</i> - an integer expression<br>
+returns - the value of the array element</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p>The 'aref' function returns the specified element out of a previously
+created array. Array elements may be any valid lisp data type, including
+lists or arrays. Arrays made by <a href="make-array.htm">make-array</a> and
+accessed by 'aref' are <nobr>base 0</nobr>. This means the first element is
+accessed by element <nobr>number '0'</nobr> and the last element is accessed
+by element <nobr>number 'n-1'</nobr> [where 'n' is the array size]. Array
+elements are initialized to <a href="nil.htm">NIL</a>.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq my-array '#(0 1 2 3 4)) =&gt; #(0 1 2 3 4)
+(aref my-array 0) =&gt; 0
+(aref my-array 4) =&gt; 4
+(aref my-array 5) =&gt; <font color="#AA0000">error: array index out of bounds - 5</font>
+my-array =&gt; #(0 1 2 3 4)
+
+(setq new (make-array 4)) =&gt; #(NIL NIL NIL NIL)
+(setf (aref new 0) (make-array 4)) =&gt; #(NIL NIL NIL NIL)
+new =&gt; #(#(NIL NIL NIL NIL) NIL NIL NIL)
+(setf (aref (aref new 0) 1) 'a) =&gt; A
+new =&gt; #(#(NIL A NIL NIL) NIL NIL NIL)
+(setf (aref new 2) '(a b c)) =&gt; (A B C)
+new =&gt; #(#(NIL A NIL NIL) NIL (A B C) NIL)
+</pre>
+
+<p><b>Read macro:</b> There is a built-in read-macro for arrays,
+<nobr>'#(...)'</nobr> <nobr>[the hash</nobr> symbol with the array elements
+in parentheses]. This allows you to create arbitrary arrays with initial
+values without going through a <a href="make-array.htm">make-array</a>
+function. See the <a href="../manual/xlisp.htm#the-readtable">Readtable</a>
+section in the <nobr>XLISP 2.0</nobr> Manual.</p>
+
+<p><b>Note:</b> This function returns the value of an array element.
+However, there is no equivalent direct function to set the value of an array
+element to some value. <nobr>To set</nobr> an element value, you must use
+the <a href="setf.htm">setf</a> function.
+<nobr>The <a href="setf.htm">setf</a></nobr> function is a generalized
+function that allows you to set the value of arbitrary lisp entities.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#array-functions">Array Functions</a></nobr></li>
+</ul>
+
+<p><nobr>&nbsp;&nbsp;<a href="#top">Back to Top</nobr></a></p>
+
+<hr>
+
+<a href="../start.htm">Nyquist / XLISP 2.0</a>&nbsp; -&nbsp;
+<a href="../manual/contents.htm">Contents</a> |
+<a href="../tutorials/tutorials.htm">Tutorials</a> |
+<a href="../examples/examples.htm">Examples</a> |
+<a href="reference-index.htm">Reference</a>
+
+</body></html> \ No newline at end of file