14 lines
39 KiB
HTML
14 lines
39 KiB
HTML
<!DOCTYPE html PUBLIC ""
|
||
"">
|
||
<html><head><meta charset="UTF-8" /><title>beowulf.host documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Beowulf</span> <span class="project-version">0.3.0-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="intro.html"><div class="inner"><span>beowulf</span></div></a></li><li class="depth-1 "><a href="mexpr.html"><div class="inner"><span>Interpreting M-Expressions</span></div></a></li><li class="depth-1 "><a href="values.html"><div class="inner"><span>Understanding values and properties</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>beowulf</span></div></div></li><li class="depth-2 branch"><a href="beowulf.bootstrap.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bootstrap</span></div></a></li><li class="depth-2 branch"><a href="beowulf.cons-cell.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>cons-cell</span></div></a></li><li class="depth-2 branch"><a href="beowulf.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2 branch"><a href="beowulf.gendoc.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gendoc</span></div></a></li><li class="depth-2 branch current"><a href="beowulf.host.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>host</span></div></a></li><li class="depth-2 branch"><a href="beowulf.io.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>io</span></div></a></li><li class="depth-2 branch"><a href="beowulf.manual.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>manual</span></div></a></li><li class="depth-2 branch"><a href="beowulf.oblist.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>oblist</span></div></a></li><li class="depth-2 branch"><a href="beowulf.read.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>read</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>reader</span></div></div></li><li class="depth-3 branch"><a href="beowulf.reader.char-reader.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>char-reader</span></div></a></li><li class="depth-3 branch"><a href="beowulf.reader.generate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>generate</span></div></a></li><li class="depth-3 branch"><a href="beowulf.reader.macros.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>macros</span></div></a></li><li class="depth-3 branch"><a href="beowulf.reader.parser.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>parser</span></div></a></li><li class="depth-3"><a href="beowulf.reader.simplify.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simplify</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="beowulf.host.html#var-ADD1"><div class="inner"><span>ADD1</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-AND"><div class="inner"><span>AND</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-ASSOC"><div class="inner"><span>ASSOC</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-ATOM"><div class="inner"><span>ATOM</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-ATOM.3F"><div class="inner"><span>ATOM?</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CAAAAR"><div class="inner"><span>CAAAAR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CAAADR"><div class="inner"><span>CAAADR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CAAAR"><div class="inner"><span>CAAAR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CAADAR"><div class="inner"><span>CAADAR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CAADDR"><div class="inner"><span>CAADDR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CAADR"><div class="inner"><span>CAADR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CAAR"><div class="inner"><span>CAAR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CADAAR"><div class="inner"><span>CADAAR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CADADR"><div class="inner"><span>CADADR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CADAR"><div class="inner"><span>CADAR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CADDAR"><div class="inner"><span>CADDAR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CADDDR"><div class="inner"><span>CADDDR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CADDR"><div class="inner"><span>CADDR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CADR"><div class="inner"><span>CADR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CAR"><div class="inner"><span>CAR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CDAAAR"><div class="inner"><span>CDAAAR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CDAADR"><div class="inner"><span>CDAADR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CDAAR"><div class="inner"><span>CDAAR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CDADAR"><div class="inner"><span>CDADAR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CDADDR"><div class="inner"><span>CDADDR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CDADR"><div class="inner"><span>CDADR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CDAR"><div class="inner"><span>CDAR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CDDAAR"><div class="inner"><span>CDDAAR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CDDADR"><div class="inner"><span>CDDADR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CDDAR"><div class="inner"><span>CDDAR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CDDDAR"><div class="inner"><span>CDDDAR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CDDDDR"><div class="inner"><span>CDDDDR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CDDDR"><div class="inner"><span>CDDDR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CDDR"><div class="inner"><span>CDDR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CDR"><div class="inner"><span>CDR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CONS"><div class="inner"><span>CONS</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-CONSP"><div class="inner"><span>CONSP</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-DEFINE"><div class="inner"><span>DEFINE</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-DIFFERENCE"><div class="inner"><span>DIFFERENCE</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-DOC"><div class="inner"><span>DOC</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-EQ"><div class="inner"><span>EQ</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-EQUAL"><div class="inner"><span>EQUAL</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-ERROR"><div class="inner"><span>ERROR</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-FIXP"><div class="inner"><span>FIXP</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-GENSYM"><div class="inner"><span>GENSYM</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-GREATERP"><div class="inner"><span>GREATERP</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-lax.3F"><div class="inner"><span>lax?</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-LESSP"><div class="inner"><span>LESSP</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-LIST"><div class="inner"><span>LIST</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-NILP"><div class="inner"><span>NILP</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-NULL"><div class="inner"><span>NULL</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-NUMBERP"><div class="inner"><span>NUMBERP</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-OBLIST"><div class="inner"><span>OBLIST</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-PAIRLIS"><div class="inner"><span>PAIRLIS</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-PLUS"><div class="inner"><span>PLUS</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-QUOTIENT"><div class="inner"><span>QUOTIENT</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-REMAINDER"><div class="inner"><span>REMAINDER</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-RPLACA"><div class="inner"><span>RPLACA</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-RPLACD"><div class="inner"><span>RPLACD</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-SET"><div class="inner"><span>SET</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-SUB1"><div class="inner"><span>SUB1</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-TIMES"><div class="inner"><span>TIMES</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-TRACE"><div class="inner"><span>TRACE</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-traced-symbols"><div class="inner"><span>traced-symbols</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-traced.3F"><div class="inner"><span>traced?</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-uaf"><div class="inner"><span>uaf</span></div></a></li><li class="depth-1"><a href="beowulf.host.html#var-UNTRACE"><div class="inner"><span>UNTRACE</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">beowulf.host</h1><div class="doc"><div class="markdown"><p>provides Lisp 1.5 functions which can’t be (or can’t efficiently be) implemented in Lisp 1.5, which therefore need to be implemented in the host language, in this case Clojure.</p></div></div><div class="public anchor" id="var-ADD1"><h3>ADD1</h3><div class="usage"><code>(ADD1 x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L344">view source</a></div></div><div class="public anchor" id="var-AND"><h3>AND</h3><div class="usage"><code>(AND & args)</code></div><div class="doc"><div class="markdown"><p><code>T</code> if and only if none of my <code>args</code> evaluate to either <code>F</code> or <code>NIL</code>, else <code>F</code>.</p>
|
||
<p>In <code>beowulf.host</code> principally because I don’t yet feel confident to define varargs functions in Lisp.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L256">view source</a></div></div><div class="public anchor" id="var-ASSOC"><h3>ASSOC</h3><div class="usage"><code>(ASSOC x a)</code></div><div class="doc"><div class="markdown"><p>If a is an association list such as the one formed by PAIRLIS in the above example, then assoc will produce the first pair whose first term is x. Thus it is a table searching function.</p>
|
||
<p>All args are assumed to be <code>beowulf.cons-cell/ConsCell</code> objects. See page 12 of the Lisp 1.5 Programmers Manual.</p>
|
||
<p><strong>NOTE THAT</strong> this function is overridden by an implementation in Lisp, but is currently still present for bootstrapping.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L271">view source</a></div></div><div class="public anchor" id="var-ATOM"><h3>ATOM</h3><div class="usage"><code>(ATOM x)</code></div><div class="doc"><div class="markdown"><p>Returns <code>T</code> if and only if the argument <code>x</code> is bound to an atom; else <code>F</code>. It is not clear to me from the documentation whether <code>(ATOM 7)</code> should return <code>T</code> or <code>F</code>. I’m going to assume <code>T</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L220">view source</a></div></div><div class="public anchor" id="var-ATOM.3F"><h3>ATOM?</h3><h4 class="type">macro</h4><div class="usage"><code>(ATOM? x)</code></div><div class="doc"><div class="markdown"><p>The convention of returning <code>F</code> from predicates, rather than <code>NIL</code>, is going to tie me in knots. This is a variant of <code>ATOM</code> which returns <code>NIL</code> on failure.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L227">view source</a></div></div><div class="public anchor" id="var-CAAAAR"><h3>CAAAAR</h3><h4 class="type">macro</h4><div class="usage"><code>(CAAAAR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L137">view source</a></div></div><div class="public anchor" id="var-CAAADR"><h3>CAAADR</h3><h4 class="type">macro</h4><div class="usage"><code>(CAAADR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L145">view source</a></div></div><div class="public anchor" id="var-CAAAR"><h3>CAAAR</h3><h4 class="type">macro</h4><div class="usage"><code>(CAAAR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L128">view source</a></div></div><div class="public anchor" id="var-CAADAR"><h3>CAADAR</h3><h4 class="type">macro</h4><div class="usage"><code>(CAADAR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L138">view source</a></div></div><div class="public anchor" id="var-CAADDR"><h3>CAADDR</h3><h4 class="type">macro</h4><div class="usage"><code>(CAADDR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L146">view source</a></div></div><div class="public anchor" id="var-CAADR"><h3>CAADR</h3><h4 class="type">macro</h4><div class="usage"><code>(CAADR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L129">view source</a></div></div><div class="public anchor" id="var-CAAR"><h3>CAAR</h3><h4 class="type">macro</h4><div class="usage"><code>(CAAR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L123">view source</a></div></div><div class="public anchor" id="var-CADAAR"><h3>CADAAR</h3><h4 class="type">macro</h4><div class="usage"><code>(CADAAR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L139">view source</a></div></div><div class="public anchor" id="var-CADADR"><h3>CADADR</h3><h4 class="type">macro</h4><div class="usage"><code>(CADADR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L147">view source</a></div></div><div class="public anchor" id="var-CADAR"><h3>CADAR</h3><h4 class="type">macro</h4><div class="usage"><code>(CADAR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L130">view source</a></div></div><div class="public anchor" id="var-CADDAR"><h3>CADDAR</h3><h4 class="type">macro</h4><div class="usage"><code>(CADDAR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L140">view source</a></div></div><div class="public anchor" id="var-CADDDR"><h3>CADDDR</h3><h4 class="type">macro</h4><div class="usage"><code>(CADDDR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L148">view source</a></div></div><div class="public anchor" id="var-CADDR"><h3>CADDR</h3><h4 class="type">macro</h4><div class="usage"><code>(CADDR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L131">view source</a></div></div><div class="public anchor" id="var-CADR"><h3>CADR</h3><h4 class="type">macro</h4><div class="usage"><code>(CADR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L124">view source</a></div></div><div class="public anchor" id="var-CAR"><h3>CAR</h3><div class="usage"><code>(CAR x)</code></div><div class="doc"><div class="markdown"><p>Return the item indicated by the first pointer of a pair. NIL is treated specially: the CAR of NIL is NIL.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L58">view source</a></div></div><div class="public anchor" id="var-CDAAAR"><h3>CDAAAR</h3><h4 class="type">macro</h4><div class="usage"><code>(CDAAAR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L143">view source</a></div></div><div class="public anchor" id="var-CDAADR"><h3>CDAADR</h3><h4 class="type">macro</h4><div class="usage"><code>(CDAADR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L151">view source</a></div></div><div class="public anchor" id="var-CDAAR"><h3>CDAAR</h3><h4 class="type">macro</h4><div class="usage"><code>(CDAAR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L134">view source</a></div></div><div class="public anchor" id="var-CDADAR"><h3>CDADAR</h3><h4 class="type">macro</h4><div class="usage"><code>(CDADAR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L144">view source</a></div></div><div class="public anchor" id="var-CDADDR"><h3>CDADDR</h3><h4 class="type">macro</h4><div class="usage"><code>(CDADDR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L152">view source</a></div></div><div class="public anchor" id="var-CDADR"><h3>CDADR</h3><h4 class="type">macro</h4><div class="usage"><code>(CDADR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L135">view source</a></div></div><div class="public anchor" id="var-CDAR"><h3>CDAR</h3><h4 class="type">macro</h4><div class="usage"><code>(CDAR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L126">view source</a></div></div><div class="public anchor" id="var-CDDAAR"><h3>CDDAAR</h3><h4 class="type">macro</h4><div class="usage"><code>(CDDAAR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L141">view source</a></div></div><div class="public anchor" id="var-CDDADR"><h3>CDDADR</h3><h4 class="type">macro</h4><div class="usage"><code>(CDDADR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L149">view source</a></div></div><div class="public anchor" id="var-CDDAR"><h3>CDDAR</h3><h4 class="type">macro</h4><div class="usage"><code>(CDDAR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L132">view source</a></div></div><div class="public anchor" id="var-CDDDAR"><h3>CDDDAR</h3><h4 class="type">macro</h4><div class="usage"><code>(CDDDAR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L142">view source</a></div></div><div class="public anchor" id="var-CDDDDR"><h3>CDDDDR</h3><h4 class="type">macro</h4><div class="usage"><code>(CDDDDR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L150">view source</a></div></div><div class="public anchor" id="var-CDDDR"><h3>CDDDR</h3><h4 class="type">macro</h4><div class="usage"><code>(CDDDR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L133">view source</a></div></div><div class="public anchor" id="var-CDDR"><h3>CDDR</h3><h4 class="type">macro</h4><div class="usage"><code>(CDDR x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L125">view source</a></div></div><div class="public anchor" id="var-CDR"><h3>CDR</h3><div class="usage"><code>(CDR x)</code></div><div class="doc"><div class="markdown"><p>Return the item indicated by the second pointer of a pair. NIL is treated specially: the CDR of NIL is NIL.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L78">view source</a></div></div><div class="public anchor" id="var-CONS"><h3>CONS</h3><div class="usage"><code>(CONS car cdr)</code></div><div class="doc"><div class="markdown"><p>Construct a new instance of cons cell with this <code>car</code> and <code>cdr</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L53">view source</a></div></div><div class="public anchor" id="var-CONSP"><h3>CONSP</h3><div class="usage"><code>(CONSP o)</code></div><div class="doc"><div class="markdown"><p>Return <code>T</code> if object <code>o</code> is a cons cell, else <code>F</code>.</p>
|
||
<p><strong>NOTE THAT</strong> this is an extension function, not available in strct mode. I believe that Lisp 1.5 did not have any mechanism for testing whether an argument was, or was not, a cons cell.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L465">view source</a></div></div><div class="public anchor" id="var-DEFINE"><h3>DEFINE</h3><div class="usage"><code>(DEFINE args)</code></div><div class="doc"><div class="markdown"><p>Bootstrap-only version of <code>DEFINE</code> which, post boostrap, can be overwritten in LISP. </p>
|
||
<p>The single argument to <code>DEFINE</code> should be an assoc list which should be nconc’ed onto the front of the oblist. Broadly, (SETQ OBLIST (NCONC ARG1 OBLIST))</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L397">view source</a></div></div><div class="public anchor" id="var-DIFFERENCE"><h3>DIFFERENCE</h3><div class="usage"><code>(DIFFERENCE x y)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L327">view source</a></div></div><div class="public anchor" id="var-DOC"><h3>DOC</h3><div class="usage"><code>(DOC symbol)</code></div><div class="doc"><div class="markdown"><p>Open the page for this <code>symbol</code> in the Lisp 1.5 manual, if known, in the default web browser.</p>
|
||
<p><strong>NOTE THAT</strong> this is an extension function, not available in strct mode.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L456">view source</a></div></div><div class="public anchor" id="var-EQ"><h3>EQ</h3><div class="usage"><code>(EQ x y)</code></div><div class="doc"><div class="markdown"><p>Returns <code>T</code> if and only if both <code>x</code> and <code>y</code> are bound to the same atom, else <code>NIL</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L234">view source</a></div></div><div class="public anchor" id="var-EQUAL"><h3>EQUAL</h3><div class="usage"><code>(EQUAL x y)</code></div><div class="doc"><div class="markdown"><p>This is a predicate that is true if its two arguments are identical S-expressions, and false if they are different. (The elementary predicate <code>EQ</code> is defined only for atomic arguments.) The definition of <code>EQUAL</code> is an example of a conditional expression inside a conditional expression.</p>
|
||
<p>NOTE: returns <code>F</code> on failure, not <code>NIL</code></p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L243">view source</a></div></div><div class="public anchor" id="var-ERROR"><h3>ERROR</h3><div class="usage"><code>(ERROR & args)</code></div><div class="doc"><div class="markdown"><p>Throw an error</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L375">view source</a></div></div><div class="public anchor" id="var-FIXP"><h3>FIXP</h3><div class="usage"><code>(FIXP x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L352">view source</a></div></div><div class="public anchor" id="var-GENSYM"><h3>GENSYM</h3><div class="usage"><code>(GENSYM)</code></div><div class="doc"><div class="markdown"><p>Generate a unique symbol.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L370">view source</a></div></div><div class="public anchor" id="var-GREATERP"><h3>GREATERP</h3><div class="usage"><code>(GREATERP x y)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L364">view source</a></div></div><div class="public anchor" id="var-lax.3F"><h3>lax?</h3><div class="usage"><code>(lax? symbol)</code></div><div class="doc"><div class="markdown"><p>Are we in lax mode? If so. return true; is not, throw an exception with this <code>symbol</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L40">view source</a></div></div><div class="public anchor" id="var-LESSP"><h3>LESSP</h3><div class="usage"><code>(LESSP x y)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L360">view source</a></div></div><div class="public anchor" id="var-LIST"><h3>LIST</h3><div class="usage"><code>(LIST & args)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L204">view source</a></div></div><div class="public anchor" id="var-NILP"><h3>NILP</h3><h4 class="type">macro</h4><div class="usage"><code>(NILP x)</code></div><div class="doc"><div class="markdown"><p>Not part of LISP 1.5: <code>T</code> if <code>o</code> is <code>NIL</code>, else <code>NIL</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L215">view source</a></div></div><div class="public anchor" id="var-NULL"><h3>NULL</h3><h4 class="type">macro</h4><div class="usage"><code>(NULL x)</code></div><div class="doc"><div class="markdown"><p>Returns <code>T</code> if and only if the argument <code>x</code> is bound to <code>NIL</code>; else <code>F</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L210">view source</a></div></div><div class="public anchor" id="var-NUMBERP"><h3>NUMBERP</h3><div class="usage"><code>(NUMBERP x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L356">view source</a></div></div><div class="public anchor" id="var-OBLIST"><h3>OBLIST</h3><div class="usage"><code>(OBLIST)</code></div><div class="doc"><div class="markdown"><p>Return a list of the symbols currently bound on the object list.</p>
|
||
<p><strong>NOTE THAT</strong> in the Lisp 1.5 manual, footnote at the bottom of page 69, it implies that an argument can be passed but I’m not sure of the semantics of this.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L386">view source</a></div></div><div class="public anchor" id="var-PAIRLIS"><h3>PAIRLIS</h3><div class="usage"><code>(PAIRLIS x y a)</code></div><div class="doc"><div class="markdown"><p>This function gives the list of pairs of corresponding elements of the lists <code>x</code> and <code>y</code>, and APPENDs this to the list <code>a</code>. The resultant list of pairs, which is like a table with two columns, is called an association list.</p>
|
||
<p>Eessentially, it builds the environment on the stack, implementing shallow binding.</p>
|
||
<p>All args are assumed to be <code>beowulf.cons-cell/ConsCell</code> objects. See page 12 of the Lisp 1.5 Programmers Manual.</p>
|
||
<p><strong>NOTE THAT</strong> this function is overridden by an implementation in Lisp, but is currently still present for bootstrapping.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L289">view source</a></div></div><div class="public anchor" id="var-PLUS"><h3>PLUS</h3><div class="usage"><code>(PLUS & args)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L317">view source</a></div></div><div class="public anchor" id="var-QUOTIENT"><h3>QUOTIENT</h3><div class="usage"><code>(QUOTIENT x y)</code></div><div class="doc"><div class="markdown"><p>I’m not certain from the documentation whether Lisp 1.5 <code>QUOTIENT</code> returned the integer part of the quotient, or a realnum representing the whole quotient. I am for now implementing the latter.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L332">view source</a></div></div><div class="public anchor" id="var-REMAINDER"><h3>REMAINDER</h3><div class="usage"><code>(REMAINDER x y)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L340">view source</a></div></div><div class="public anchor" id="var-RPLACA"><h3>RPLACA</h3><div class="usage"><code>(RPLACA cell value)</code></div><div class="doc"><div class="markdown"><p>Replace the CAR pointer of this <code>cell</code> with this <code>value</code>. Dangerous, should really not exist, but does in Lisp 1.5 (and was important for some performance hacks in early Lisps)</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L154">view source</a></div></div><div class="public anchor" id="var-RPLACD"><h3>RPLACD</h3><div class="usage"><code>(RPLACD cell value)</code></div><div class="doc"><div class="markdown"><p>Replace the CDR pointer of this <code>cell</code> with this <code>value</code>. Dangerous, should really not exist, but does in Lisp 1.5 (and was important for some performance hacks in early Lisps)</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L179">view source</a></div></div><div class="public anchor" id="var-SET"><h3>SET</h3><div class="usage"><code>(SET symbol val)</code></div><div class="doc"><div class="markdown"><p>Implementation of SET in Clojure. Add to the <code>oblist</code> a binding of the value of <code>var</code> to the value of <code>val</code>. NOTE WELL: this is not SETQ!</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L417">view source</a></div></div><div class="public anchor" id="var-SUB1"><h3>SUB1</h3><div class="usage"><code>(SUB1 x)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L348">view source</a></div></div><div class="public anchor" id="var-TIMES"><h3>TIMES</h3><div class="usage"><code>(TIMES & args)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L322">view source</a></div></div><div class="public anchor" id="var-TRACE"><h3>TRACE</h3><div class="usage"><code>(TRACE s)</code></div><div class="doc"><div class="markdown"><p>Add this symbol <code>s</code> to the set of symbols currently being traced. If <code>s</code> is not a symbol, does nothing.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L442">view source</a></div></div><div class="public anchor" id="var-traced-symbols"><h3>traced-symbols</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Symbols currently being traced.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L432">view source</a></div></div><div class="public anchor" id="var-traced.3F"><h3>traced?</h3><div class="usage"><code>(traced? s)</code></div><div class="doc"><div class="markdown"><p>Return <code>true</code> iff <code>s</code> is a symbol currently being traced, else <code>nil</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L436">view source</a></div></div><div class="public anchor" id="var-uaf"><h3>uaf</h3><div class="usage"><code>(uaf l path)</code></div><div class="doc"><div class="markdown"><p>Universal access function; <code>l</code> is expected to be an arbitrary LISP list, <code>path</code> a (clojure) list of the characters <code>a</code> and <code>d</code>. Intended to make declaring all those fiddly <code>#'c[ad]+r'</code> functions a bit easier</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L98">view source</a></div></div><div class="public anchor" id="var-UNTRACE"><h3>UNTRACE</h3><div class="usage"><code>(UNTRACE s)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L449">view source</a></div></div></div></body></html> |