summaryrefslogtreecommitdiff
path: root/docsrc/xlisp/xlisp-doc/reference/caaaar.htm
diff options
context:
space:
mode:
Diffstat (limited to 'docsrc/xlisp/xlisp-doc/reference/caaaar.htm')
-rw-r--r--docsrc/xlisp/xlisp-doc/reference/caaaar.htm134
1 files changed, 134 insertions, 0 deletions
diff --git a/docsrc/xlisp/xlisp-doc/reference/caaaar.htm b/docsrc/xlisp/xlisp-doc/reference/caaaar.htm
new file mode 100644
index 0000000..69ccda4
--- /dev/null
+++ b/docsrc/xlisp/xlisp-doc/reference/caaaar.htm
@@ -0,0 +1,134 @@
+<html><head><title>XLISP caaaar ... cadddr</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>caaaar ... cadddr</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>xllist.c</nobr></td>
+</tr>
+</tbody></table></p>
+
+<h2>Syntax</h2>
+
+<p><div class="box">
+
+<dl>
+<dt>(<b>caaaar</b> <i>expr</i>)<br>
+(<b>caaadr</b> <i>expr</i>)<br>
+(<b>caadar</b> <i>expr</i>)<br>
+(<b>caaddr</b> <i>expr</i>)<br>
+(<b>cadaar</b> <i>expr</i>)<br>
+(<b>cadadr</b> <i>expr</i>)<br>
+(<b>caddar</b> <i>expr</i>)<br>
+(<b>cadddr</b> <i>expr</i>)</dt>
+<dd><i>expr</i> - a list or list expression<br>
+returns - the result of the last <a href="car.htm">car</a>
+function</dd>
+</dl>
+
+</div></p>
+
+<h2>Description</h2>
+
+<p> The 'caaaar' ... 'cadddr' functions go through the list expression and
+perform a sequence of <a href="car.htm">car</a> or <a href="cdr.htm">cdr</a>
+operations. <nobr>The sequence</nobr> of operations is performed from right
+to left. <nobr>So 'caaddr'</nobr> does a <a href="cdr.htm">cdr</a> on the
+expression, followed by a <a href="cdr.htm">cdr</a>, followed by a
+<a href="car.htm">car</a>, followed by
+<nobr>another <a href="car.htm">car</a></nobr>. <nobr>If at</nobr> any point
+the list is <a href="nil.htm">NIL</a>, then <a href="nil.htm">NIL</a> is
+returned. <nobr>If at</nobr> any point a <a href="car.htm">car</a> operation
+is performed on an atom <nobr>[as opposed</nobr> to <nobr>a list]</nobr> an
+error is signalled:</p>
+
+<pre class="example">
+<font color="#AA0000">error: bad argument</font>
+</pre>
+
+<p>The 'cadddr' function returns the same result as the
+<a href="fourth.htm">fourth</a> function.</p>
+
+<h2>Examples</h2>
+
+<pre class="example">
+(setq mylist '((((111A 111B) (112A 112B) (113A 113B)) <font color="#008844">; 1st set</font>
+ ((121A 121B) (122A 122B) (123A 123B))
+ ((131A 131B) (132A 132B) (133A 133B))
+ ((141A 141B) (142A 142B) (143A 143B)))
+ (((211A 211B) (212A 212B) (213A 213B)) <font color="#008844">; 2nd set</font>
+ ((221A 221B) (222A 222B) (223A 223B))
+ ((231A 231B) (232A 232B) (233A 233B))
+ ((241A 241B) (242A 242B) (243A 243B)))
+ (((311A 311B) (312A 312B) (313A 313B)) <font color="#008844">; 3rd set</font>
+ ((321A 321B) (322A 322B) (323A 323B))
+ ((331A 331B) (332A 332B) (333A 333B))
+ ((341A 341B) (342A 342B) (343A 343B)))
+ (((411A 411B) (412A 412B) (413A 413B)) <font color="#008844">; 4th set</font>
+ ((421A 421B) (422A 422B) (423A 423B))
+ ((431A 431B) (432A 432B) (433A 433B))
+ ((441A 441B) (442A 442B) (443A 443B)))
+ (((511A 511B) (512A 512B) (513A 513B)) <font color="#008844">; 5th set</font>
+ ((521A 521B) (522A 522B) (523A 523B))
+ ((531A 531B) (532A 532B) (533A 533B))
+ ((541A 541B) (542A 542B) (543A 543B)))))
+
+(caaaar mylist) =&gt; 111A
+(caaadr mylist) =&gt; (211A 211B)
+(caadar mylist) =&gt; (121A 121B)
+(caaddr mylist) =&gt; ((311A 311B) (312A 312B) (313A 313B))
+(cadaar mylist) =&gt; (112A 112B)
+(cadadr mylist) =&gt; ((221A 221B) (222A 222B) (223A 223B))
+(caddar mylist) =&gt; ((131A 131B) (132A 132B) (133A 133B))
+(cadddr mylist) =&gt; (((411A 411B) (412A 412B) (413A 413B))
+ ((421A 421B) (422A 422B) (423A 423B))
+ ((431A 431B) (432A 432B) (433A 433B))
+ ((441A 441B) (442A 442B) (443A 443B)))
+</pre>
+
+<p><b>Note:</b> The '<nobr>c...r</nobr>' functions are part of the
+historical Lisp functions. You may find it easier to work with the modern
+lisp functions like <a href="nth.htm">nth</a> and
+<a href="nthcdr.htm">nthcdr</a>.</p>
+
+<p>See also:</p>
+
+<ul>
+<li><nobr>Contents &rarr; <a href="../manual/contents.htm#list-functions">List Functions</a></nobr></li>
+<li><nobr>Tutorials &rarr; Lisp Hints &rarr; <a href="../tutorials/lisp-hints.htm#list-accessors">List Accessors</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