beowulf/docs/codox/beowulf.host.html

19 lines
43 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC ""
"">
<html><head><meta charset="UTF-8" /><title>beowulf.host documentation</title><link rel="icon" type="image/x-icon" href="../img/beowulf_logo_favicon.png" /><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</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="further_reading.html"><div class="inner"><span>Further Reading</span></div></a></li><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>The properties of the system, and their values</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.interop.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>interop</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-DEFLIST"><div class="inner"><span>DEFLIST</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-GET"><div class="inner"><span>GET</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-magic-marker"><div class="inner"><span>magic-marker</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-OR"><div class="inner"><span>OR</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-PUT"><div class="inner"><span>PUT</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 cant be (or cant 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#L379">view source</a></div></div><div class="public anchor" id="var-AND"><h3>AND</h3><div class="usage"><code>(AND &amp; 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 dont 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#L274">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#L306">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>. Im 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#L238">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#L245">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#L125">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#L133">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#L116">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#L126">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#L134">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#L117">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#L111">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#L127">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#L135">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#L118">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#L128">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#L136">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#L119">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#L112">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#L57">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#L131">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#L139">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#L122">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#L132">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#L140">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#L123">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#L114">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#L129">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#L137">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#L120">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#L130">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#L138">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#L121">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#L113">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#L71">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#L52">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#L563">view source</a></div></div><div class="public anchor" id="var-DEFINE"><h3>DEFINE</h3><div class="usage"><code>(DEFINE a-list)</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 association list of symbols to lambda functions. See page 58 of the manual.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L506">view source</a></div></div><div class="public anchor" id="var-DEFLIST"><h3>DEFLIST</h3><div class="usage"><code>(DEFLIST a-list indicator)</code></div><div class="doc"><div class="markdown"><p>For each pair in this association list <code>a-list</code>, set the property with this <code>indicator</code> of the symbol which is the first element of the pair to the value which is the second element of the pair. See page 58 of the manual.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L497">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#L362">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#L554">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#L252">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#L261">view source</a></div></div><div class="public anchor" id="var-ERROR"><h3>ERROR</h3><div class="usage"><code>(ERROR &amp; 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#L410">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#L387">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#L405">view source</a></div></div><div class="public anchor" id="var-GET"><h3>GET</h3><div class="usage"><code>(GET symbol indicator)</code></div><div class="doc"><div class="markdown"><p>From the manual:</p>
<p><code>get</code> is somewhat like <code>prop</code>; however its value is car of the rest of the list if the <code>indicator</code> is found, and NIL otherwise.</p>
<p>Its clear that <code>GET</code> is expected to be defined in terms of <code>PROP</code>, but we cant implement <code>PROP</code> here because we lack <code>EVAL</code>; and we cant have <code>EVAL</code> here because both it and <code>APPLY</code> depends on <code>GET</code>.</p>
<p>OK, Its worse than that: the statement of the definition of <code>GET</code> (and of) <code>PROP</code> on page 59 says that the first argument to each must be a list; But the in the definition of <code>ASSOC</code> on page 70, when <code>GET</code> is called its first argument is always an atom. Since its <code>ASSOC</code> and <code>EVAL</code> which I need to make work, Im going to assume that page 59 is wrong.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L460">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#L399">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#L39">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#L395">view source</a></div></div><div class="public anchor" id="var-LIST"><h3>LIST</h3><div class="usage"><code>(LIST &amp; 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#L222">view source</a></div></div><div class="public anchor" id="var-magic-marker"><h3>magic-marker</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The unexplained magic number which marks the start of a property list.</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-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#L233">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#L228">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#L391">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 Im 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#L421">view source</a></div></div><div class="public anchor" id="var-OR"><h3>OR</h3><div class="usage"><code>(OR &amp; args)</code></div><div class="doc"><div class="markdown"><p><code>T</code> if and only if at least one of my <code>args</code> evaluates to something other than either <code>F</code> or <code>NIL</code>, else <code>F</code>.</p>
<p>In <code>beowulf.host</code> principally because I dont 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#L288">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#L324">view source</a></div></div><div class="public anchor" id="var-PLUS"><h3>PLUS</h3><div class="usage"><code>(PLUS &amp; 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#L352">view source</a></div></div><div class="public anchor" id="var-PUT"><h3>PUT</h3><div class="usage"><code>(PUT symbol indicator value)</code></div><div class="doc"><div class="markdown"><p>Put this <code>value</code> as the value of the property indicated by this <code>indicator</code> of this <code>symbol</code>. Return <code>value</code> on success.</p>
<p>NOTE THAT there is no <code>PUT</code> defined in the manual, but it would have been easy to have defined it so I dont think this fully counts as an extension.</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-QUOTIENT"><h3>QUOTIENT</h3><div class="usage"><code>(QUOTIENT x y)</code></div><div class="doc"><div class="markdown"><p>Im 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#L367">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#L375">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#L142">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#L182">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#L515">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#L383">view source</a></div></div><div class="public anchor" id="var-TIMES"><h3>TIMES</h3><div class="usage"><code>(TIMES &amp; 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#L357">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 <code>s</code> to the set of symbols currently being traced. If <code>s</code> is not a symbol or sequence of symbols, does nothing.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L533">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#L523">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#L527">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#L86">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>Remove this <code>s</code> from the set of symbols currently being traced. If <code>s</code> is not a symbol or sequence of symbols, does nothing.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/beowulf/blob/master/src/beowulf/host.clj#L543">view source</a></div></div></div></body></html>