beowulf/docs/cloverage/beowulf/host.clj.html
2023-04-11 12:11:28 +01:00

1773 lines
116 KiB
HTML

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../coverage.css"/> <title> beowulf/host.clj </title>
</head>
<body>
<span class="covered" title="1 out of 1 forms covered">
001&nbsp;&nbsp;(ns&nbsp;beowulf.host
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
002&nbsp;&nbsp;&nbsp;&nbsp;&quot;provides&nbsp;Lisp&nbsp;1.5&nbsp;functions&nbsp;which&nbsp;can&#x27;t&nbsp;be&nbsp;(or&nbsp;can&#x27;t&nbsp;efficiently
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
003&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;be)&nbsp;implemented&nbsp;in&nbsp;Lisp&nbsp;1.5,&nbsp;which&nbsp;therefore&nbsp;need&nbsp;to&nbsp;be&nbsp;implemented&nbsp;in&nbsp;the
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
004&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;host&nbsp;language,&nbsp;in&nbsp;this&nbsp;case&nbsp;Clojure.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
005&nbsp;&nbsp;&nbsp;&nbsp;(:require&nbsp;[beowulf.cons-cell&nbsp;:refer&nbsp;[F&nbsp;make-beowulf-list&nbsp;make-cons-cell
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
006&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pretty-print&nbsp;T]]&nbsp;;;&nbsp;note&nbsp;hyphen&nbsp;-&nbsp;this&nbsp;is&nbsp;Clojure...
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
007&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[beowulf.gendoc&nbsp;:refer&nbsp;[open-doc]]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
008&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[beowulf.oblist&nbsp;:refer&nbsp;[*options*&nbsp;NIL&nbsp;oblist]]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
009&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[clojure.set&nbsp;:refer&nbsp;[union]]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
010&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[clojure.string&nbsp;:refer&nbsp;[upper-case]])
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
011&nbsp;&nbsp;&nbsp;&nbsp;(:import&nbsp;[beowulf.cons_cell&nbsp;ConsCell]&nbsp;;;&nbsp;note&nbsp;underscore&nbsp;-&nbsp;same&nbsp;namespace,&nbsp;but&nbsp;Java.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
012&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
013&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
014&nbsp;&nbsp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
015&nbsp;&nbsp;;;;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
016&nbsp;&nbsp;;;;&nbsp;Copyright&nbsp;(C)&nbsp;2022-2023&nbsp;Simon&nbsp;Brooke
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
017&nbsp;&nbsp;;;;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
018&nbsp;&nbsp;;;;&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software;&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and&#x2F;or
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
019&nbsp;&nbsp;;;;&nbsp;modify&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
020&nbsp;&nbsp;;;;&nbsp;as&nbsp;published&nbsp;by&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation;&nbsp;either&nbsp;version&nbsp;2
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
021&nbsp;&nbsp;;;;&nbsp;of&nbsp;the&nbsp;License,&nbsp;or&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
022&nbsp;&nbsp;;;;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
023&nbsp;&nbsp;;;;&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
024&nbsp;&nbsp;;;;&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
025&nbsp;&nbsp;;;;&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
026&nbsp;&nbsp;;;;&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
027&nbsp;&nbsp;;;;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
028&nbsp;&nbsp;;;;&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
029&nbsp;&nbsp;;;;&nbsp;along&nbsp;with&nbsp;this&nbsp;program;&nbsp;if&nbsp;not,&nbsp;write&nbsp;to&nbsp;the&nbsp;Free&nbsp;Software
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
030&nbsp;&nbsp;;;;&nbsp;Foundation,&nbsp;Inc.,&nbsp;51&nbsp;Franklin&nbsp;Street,&nbsp;Fifth&nbsp;Floor,&nbsp;Boston,&nbsp;MA&nbsp;&nbsp;02110-1301,&nbsp;USA.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
031&nbsp;&nbsp;;;;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
032&nbsp;&nbsp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
033&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
034&nbsp;&nbsp;;;&nbsp;these&nbsp;are&nbsp;CANDIDATES&nbsp;to&nbsp;be&nbsp;host-implemented.&nbsp;only&nbsp;a&nbsp;subset&nbsp;of&nbsp;them&nbsp;MUST&nbsp;be.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
035&nbsp;&nbsp;;;&nbsp;those&nbsp;which&nbsp;can&nbsp;be&nbsp;implemented&nbsp;in&nbsp;Lisp&nbsp;should&nbsp;be,&nbsp;since&nbsp;that&nbsp;aids
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
036&nbsp;&nbsp;;;&nbsp;portability.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
037&nbsp;&nbsp;
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
038&nbsp;&nbsp;
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
039&nbsp;&nbsp;(defn&nbsp;lax?
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
040&nbsp;&nbsp;&nbsp;&nbsp;&quot;Are&nbsp;we&nbsp;in&nbsp;lax&nbsp;mode?&nbsp;If&nbsp;so.&nbsp;return&nbsp;true;&nbsp;is&nbsp;not,&nbsp;throw&nbsp;an&nbsp;exception&nbsp;with&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
041&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this&nbsp;`symbol`.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
042&nbsp;&nbsp;&nbsp;&nbsp;[symbol]
</span><br/>
<span class="partial" title="4 out of 5 forms covered">
043&nbsp;&nbsp;&nbsp;&nbsp;(when&nbsp;(:strict&nbsp;*options*)
</span><br/>
<span class="not-covered" title="0 out of 7 forms covered">
044&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(throw&nbsp;(ex-info&nbsp;(format&nbsp;&quot;%s&nbsp;ne&nbsp;āfand&nbsp;innan&nbsp;Lisp&nbsp;1.5&quot;&nbsp;symbol)
</span><br/>
<span class="not-covered" title="0 out of 6 forms covered">
045&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{:type&nbsp;:strict
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
046&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:phase&nbsp;:host
</span><br/>
<span class="not-covered" title="0 out of 1 forms covered">
047&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:function&nbsp;symbol})))
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
048&nbsp;&nbsp;&nbsp;&nbsp;true)
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
049&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
050&nbsp;&nbsp;;;;;&nbsp;Basic&nbsp;operations&nbsp;on&nbsp;cons&nbsp;cells&nbsp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
051&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
052&nbsp;&nbsp;(defn&nbsp;CONS
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
053&nbsp;&nbsp;&nbsp;&nbsp;&quot;Construct&nbsp;a&nbsp;new&nbsp;instance&nbsp;of&nbsp;cons&nbsp;cell&nbsp;with&nbsp;this&nbsp;`car`&nbsp;and&nbsp;`cdr`.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
054&nbsp;&nbsp;&nbsp;&nbsp;[car&nbsp;cdr]
</span><br/>
<span class="covered" title="6 out of 6 forms covered">
055&nbsp;&nbsp;&nbsp;&nbsp;(beowulf.cons_cell.ConsCell.&nbsp;car&nbsp;cdr&nbsp;(gensym&nbsp;&quot;c&quot;)))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
056&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
057&nbsp;&nbsp;(defn&nbsp;CAR
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
058&nbsp;&nbsp;&nbsp;&nbsp;&quot;Return&nbsp;the&nbsp;item&nbsp;indicated&nbsp;by&nbsp;the&nbsp;first&nbsp;pointer&nbsp;of&nbsp;a&nbsp;pair.&nbsp;NIL&nbsp;is&nbsp;treated
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
059&nbsp;&nbsp;&nbsp;&nbsp;specially:&nbsp;the&nbsp;CAR&nbsp;of&nbsp;NIL&nbsp;is&nbsp;NIL.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
060&nbsp;&nbsp;&nbsp;&nbsp;[x]
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
061&nbsp;&nbsp;&nbsp;&nbsp;(cond
</span><br/>
<span class="covered" title="4 out of 4 forms covered">
062&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(=&nbsp;x&nbsp;NIL)&nbsp;NIL
</span><br/>
<span class="partial" title="9 out of 10 forms covered">
063&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(instance?&nbsp;ConsCell&nbsp;x)&nbsp;(or&nbsp;(.getCar&nbsp;x)&nbsp;NIL)
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
064&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:else&nbsp;&nbsp;(throw&nbsp;(ex-info
</span><br/>
<span class="covered" title="8 out of 8 forms covered">
065&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(str&nbsp;&quot;Ne&nbsp;can&nbsp;tace&nbsp;CAR&nbsp;of&nbsp;`&quot;&nbsp;x&nbsp;&quot;`&nbsp;(&quot;&nbsp;(.getName&nbsp;(.getClass&nbsp;x))&nbsp;&quot;)&quot;)
</span><br/>
<span class="covered" title="8 out of 8 forms covered">
066&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{:phase&nbsp;:host
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
067&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:function&nbsp;&#x27;CAR
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
068&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:args&nbsp;(list&nbsp;x)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
069&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;:beowulf}))))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
070&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
071&nbsp;&nbsp;(defn&nbsp;CDR
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
072&nbsp;&nbsp;&nbsp;&nbsp;&quot;Return&nbsp;the&nbsp;item&nbsp;indicated&nbsp;by&nbsp;the&nbsp;second&nbsp;pointer&nbsp;of&nbsp;a&nbsp;pair.&nbsp;NIL&nbsp;is&nbsp;treated
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
073&nbsp;&nbsp;&nbsp;&nbsp;specially:&nbsp;the&nbsp;CDR&nbsp;of&nbsp;NIL&nbsp;is&nbsp;NIL.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
074&nbsp;&nbsp;&nbsp;&nbsp;[x]
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
075&nbsp;&nbsp;&nbsp;&nbsp;(cond
</span><br/>
<span class="partial" title="3 out of 4 forms covered">
076&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(=&nbsp;x&nbsp;NIL)&nbsp;NIL
</span><br/>
<span class="partial" title="9 out of 10 forms covered">
077&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(instance?&nbsp;ConsCell&nbsp;x)&nbsp;(or&nbsp;(.getCdr&nbsp;x)&nbsp;NIL)
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
078&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:else&nbsp;&nbsp;(throw&nbsp;(ex-info
</span><br/>
<span class="covered" title="8 out of 8 forms covered">
079&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(str&nbsp;&quot;Ne&nbsp;can&nbsp;tace&nbsp;CDR&nbsp;of&nbsp;`&quot;&nbsp;x&nbsp;&quot;`&nbsp;(&quot;&nbsp;(.getName&nbsp;(.getClass&nbsp;x))&nbsp;&quot;)&quot;)
</span><br/>
<span class="covered" title="8 out of 8 forms covered">
080&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{:phase&nbsp;:host
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
081&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:function&nbsp;&#x27;CDR
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
082&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:args&nbsp;(list&nbsp;x)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
083&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;:beowulf}))))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
084&nbsp;&nbsp;
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
085&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
086&nbsp;&nbsp;(defn&nbsp;uaf
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
087&nbsp;&nbsp;&nbsp;&nbsp;&quot;Universal&nbsp;access&nbsp;function;&nbsp;`l`&nbsp;is&nbsp;expected&nbsp;to&nbsp;be&nbsp;an&nbsp;arbitrary&nbsp;LISP&nbsp;list,&nbsp;`path`
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
088&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;(clojure)&nbsp;list&nbsp;of&nbsp;the&nbsp;characters&nbsp;`a`&nbsp;and&nbsp;`d`.&nbsp;Intended&nbsp;to&nbsp;make&nbsp;declaring
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
089&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;those&nbsp;fiddly&nbsp;`#&#x27;c[ad]+r&#x27;`&nbsp;functions&nbsp;a&nbsp;bit&nbsp;easier&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
090&nbsp;&nbsp;&nbsp;&nbsp;[l&nbsp;path]
</span><br/>
<span class="covered" title="4 out of 4 forms covered">
091&nbsp;&nbsp;&nbsp;&nbsp;(cond
</span><br/>
<span class="covered" title="4 out of 4 forms covered">
092&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(=&nbsp;l&nbsp;NIL)&nbsp;NIL
</span><br/>
<span class="covered" title="4 out of 4 forms covered">
093&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(empty?&nbsp;path)&nbsp;l
</span><br/>
<span class="partial" title="6 out of 13 forms covered">
094&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(not&nbsp;(instance?&nbsp;ConsCell&nbsp;l))&nbsp;(throw&nbsp;(ex-info&nbsp;(str&nbsp;&quot;Ne&nbsp;liste:&nbsp;&quot;
</span><br/>
<span class="not-covered" title="0 out of 4 forms covered">
095&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l&nbsp;&quot;;&nbsp;&quot;&nbsp;(type&nbsp;l))
</span><br/>
<span class="not-covered" title="0 out of 8 forms covered">
096&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{:phase&nbsp;:eval
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
097&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:function&nbsp;&quot;universal&nbsp;access&nbsp;function&quot;
</span><br/>
<span class="not-covered" title="0 out of 3 forms covered">
098&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:args&nbsp;[l&nbsp;path]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
099&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;:beowulf}))
</span><br/>
<span class="covered" title="5 out of 5 forms covered">
100&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:else&nbsp;(case&nbsp;(last&nbsp;path)
</span><br/>
<span class="covered" title="6 out of 6 forms covered">
101&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\a&nbsp;(uaf&nbsp;(.first&nbsp;l)&nbsp;(butlast&nbsp;path))
</span><br/>
<span class="covered" title="6 out of 6 forms covered">
102&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\d&nbsp;(uaf&nbsp;(.getCdr&nbsp;l)&nbsp;(butlast&nbsp;path))
</span><br/>
<span class="not-covered" title="0 out of 6 forms covered">
103&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(throw&nbsp;(ex-info&nbsp;(str&nbsp;&quot;uaf:&nbsp;unexpected&nbsp;letter&nbsp;in&nbsp;path&nbsp;(only&nbsp;`a`&nbsp;and&nbsp;`d`&nbsp;permitted):&nbsp;&quot;
</span><br/>
<span class="not-covered" title="0 out of 3 forms covered">
104&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(last&nbsp;path))
</span><br/>
<span class="not-covered" title="0 out of 8 forms covered">
105&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{:phase&nbsp;:eval
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
106&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:function&nbsp;&quot;universal&nbsp;access&nbsp;function&quot;
</span><br/>
<span class="not-covered" title="0 out of 3 forms covered">
107&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:args&nbsp;[l&nbsp;path]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
108&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;:beowulf})))))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
109&nbsp;&nbsp;
</span><br/>
<span class="covered" title="43 out of 43 forms covered">
110&nbsp;&nbsp;(defmacro&nbsp;CAAR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\a&nbsp;\a)))
</span><br/>
<span class="covered" title="44 out of 44 forms covered">
111&nbsp;&nbsp;(defmacro&nbsp;CADR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\a&nbsp;\d)))
</span><br/>
<span class="covered" title="45 out of 45 forms covered">
112&nbsp;&nbsp;(defmacro&nbsp;CDDR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\d&nbsp;\d)))
</span><br/>
<span class="partial" title="5 out of 42 forms covered">
113&nbsp;&nbsp;(defmacro&nbsp;CDAR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\d&nbsp;\a)))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
114&nbsp;&nbsp;
</span><br/>
<span class="partial" title="5 out of 45 forms covered">
115&nbsp;&nbsp;(defmacro&nbsp;CAAAR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\a&nbsp;\a&nbsp;\a)))
</span><br/>
<span class="partial" title="5 out of 45 forms covered">
116&nbsp;&nbsp;(defmacro&nbsp;CAADR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\a&nbsp;\a&nbsp;\d)))
</span><br/>
<span class="covered" title="45 out of 45 forms covered">
117&nbsp;&nbsp;(defmacro&nbsp;CADAR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\a&nbsp;\d&nbsp;\a)))
</span><br/>
<span class="covered" title="45 out of 45 forms covered">
118&nbsp;&nbsp;(defmacro&nbsp;CADDR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\a&nbsp;\d&nbsp;\d)))
</span><br/>
<span class="partial" title="5 out of 45 forms covered">
119&nbsp;&nbsp;(defmacro&nbsp;CDDAR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\d&nbsp;\d&nbsp;\a)))
</span><br/>
<span class="partial" title="5 out of 45 forms covered">
120&nbsp;&nbsp;(defmacro&nbsp;CDDDR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\d&nbsp;\d&nbsp;\d)))
</span><br/>
<span class="partial" title="5 out of 45 forms covered">
121&nbsp;&nbsp;(defmacro&nbsp;CDAAR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\d&nbsp;\a&nbsp;\a)))
</span><br/>
<span class="partial" title="5 out of 45 forms covered">
122&nbsp;&nbsp;(defmacro&nbsp;CDADR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\d&nbsp;\a&nbsp;\d)))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
123&nbsp;&nbsp;
</span><br/>
<span class="covered" title="48 out of 48 forms covered">
124&nbsp;&nbsp;(defmacro&nbsp;CAAAAR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\a&nbsp;\a&nbsp;\a&nbsp;\a)))
</span><br/>
<span class="partial" title="5 out of 48 forms covered">
125&nbsp;&nbsp;(defmacro&nbsp;CAADAR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\a&nbsp;\a&nbsp;\d&nbsp;\a)))
</span><br/>
<span class="partial" title="5 out of 48 forms covered">
126&nbsp;&nbsp;(defmacro&nbsp;CADAAR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\a&nbsp;\d&nbsp;\a&nbsp;\a)))
</span><br/>
<span class="partial" title="5 out of 48 forms covered">
127&nbsp;&nbsp;(defmacro&nbsp;CADDAR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\a&nbsp;\d&nbsp;\d&nbsp;\a)))
</span><br/>
<span class="partial" title="5 out of 48 forms covered">
128&nbsp;&nbsp;(defmacro&nbsp;CDDAAR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\d&nbsp;\d&nbsp;\a&nbsp;\a)))
</span><br/>
<span class="partial" title="5 out of 48 forms covered">
129&nbsp;&nbsp;(defmacro&nbsp;CDDDAR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\d&nbsp;\d&nbsp;\d&nbsp;\a)))
</span><br/>
<span class="partial" title="5 out of 48 forms covered">
130&nbsp;&nbsp;(defmacro&nbsp;CDAAAR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\d&nbsp;\a&nbsp;\a&nbsp;\a)))
</span><br/>
<span class="partial" title="5 out of 48 forms covered">
131&nbsp;&nbsp;(defmacro&nbsp;CDADAR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\d&nbsp;\a&nbsp;\d&nbsp;\a)))
</span><br/>
<span class="partial" title="5 out of 48 forms covered">
132&nbsp;&nbsp;(defmacro&nbsp;CAAADR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\a&nbsp;\a&nbsp;\a&nbsp;\d)))
</span><br/>
<span class="partial" title="5 out of 48 forms covered">
133&nbsp;&nbsp;(defmacro&nbsp;CAADDR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\a&nbsp;\a&nbsp;\d&nbsp;\d)))
</span><br/>
<span class="partial" title="5 out of 48 forms covered">
134&nbsp;&nbsp;(defmacro&nbsp;CADADR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\a&nbsp;\d&nbsp;\a&nbsp;\d)))
</span><br/>
<span class="covered" title="48 out of 48 forms covered">
135&nbsp;&nbsp;(defmacro&nbsp;CADDDR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\a&nbsp;\d&nbsp;\d&nbsp;\d)))
</span><br/>
<span class="partial" title="5 out of 48 forms covered">
136&nbsp;&nbsp;(defmacro&nbsp;CDDADR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\d&nbsp;\d&nbsp;\a&nbsp;\d)))
</span><br/>
<span class="partial" title="5 out of 48 forms covered">
137&nbsp;&nbsp;(defmacro&nbsp;CDDDDR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\d&nbsp;\d&nbsp;\d&nbsp;\d)))
</span><br/>
<span class="partial" title="5 out of 48 forms covered">
138&nbsp;&nbsp;(defmacro&nbsp;CDAADR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\d&nbsp;\a&nbsp;\a&nbsp;\d)))
</span><br/>
<span class="partial" title="5 out of 48 forms covered">
139&nbsp;&nbsp;(defmacro&nbsp;CDADDR&nbsp;[x]&nbsp;`(uaf&nbsp;~x&nbsp;&#x27;(\d&nbsp;\a&nbsp;\d&nbsp;\d)))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
140&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
141&nbsp;&nbsp;(defn&nbsp;RPLACA
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
142&nbsp;&nbsp;&nbsp;&nbsp;&quot;Replace&nbsp;the&nbsp;CAR&nbsp;pointer&nbsp;of&nbsp;this&nbsp;`cell`&nbsp;with&nbsp;this&nbsp;`value`.&nbsp;Dangerous,&nbsp;should
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
143&nbsp;&nbsp;&nbsp;&nbsp;really&nbsp;not&nbsp;exist,&nbsp;but&nbsp;does&nbsp;in&nbsp;Lisp&nbsp;1.5&nbsp;(and&nbsp;was&nbsp;important&nbsp;for&nbsp;some
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
144&nbsp;&nbsp;&nbsp;&nbsp;performance&nbsp;hacks&nbsp;in&nbsp;early&nbsp;Lisps)&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
145&nbsp;&nbsp;&nbsp;&nbsp;[^ConsCell&nbsp;cell&nbsp;value]
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
146&nbsp;&nbsp;&nbsp;&nbsp;(if
</span><br/>
<span class="covered" title="4 out of 4 forms covered">
147&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(instance?&nbsp;ConsCell&nbsp;cell)
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
148&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if
</span><br/>
<span class="partial" title="11 out of 13 forms covered">
149&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(or
</span><br/>
<span class="covered" title="4 out of 4 forms covered">
150&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(instance?&nbsp;ConsCell&nbsp;value)
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
151&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(number?&nbsp;value)
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
152&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(symbol?&nbsp;value)
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
153&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(=&nbsp;value&nbsp;NIL))
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
154&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(try
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
155&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(.rplaca&nbsp;cell&nbsp;value)
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
156&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cell
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
157&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(catch&nbsp;Throwable&nbsp;any
</span><br/>
<span class="not-covered" title="0 out of 3 forms covered">
158&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(throw&nbsp;(ex-info
</span><br/>
<span class="not-covered" title="0 out of 4 forms covered">
159&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(str&nbsp;(.getMessage&nbsp;any)&nbsp;&quot;&nbsp;in&nbsp;RPLACA:&nbsp;`&quot;)
</span><br/>
<span class="not-covered" title="0 out of 10 forms covered">
160&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{:cause&nbsp;:upstream-error
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
161&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:phase&nbsp;:host
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
162&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:function&nbsp;:rplaca
</span><br/>
<span class="not-covered" title="0 out of 4 forms covered">
163&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:args&nbsp;(list&nbsp;cell&nbsp;value)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
164&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;:beowulf}
</span><br/>
<span class="not-covered" title="0 out of 1 forms covered">
165&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;any))))
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
166&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(throw&nbsp;(ex-info
</span><br/>
<span class="covered" title="9 out of 9 forms covered">
167&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(str&nbsp;&quot;Un-ġefōg&nbsp;þing&nbsp;in&nbsp;RPLACA:&nbsp;`&quot;&nbsp;value&nbsp;&quot;`&nbsp;(&quot;&nbsp;(type&nbsp;value)&nbsp;&quot;)&quot;)
</span><br/>
<span class="covered" title="10 out of 10 forms covered">
168&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{:cause&nbsp;:bad-value
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
169&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:phase&nbsp;:host
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
170&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:function&nbsp;:rplaca
</span><br/>
<span class="covered" title="4 out of 4 forms covered">
171&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:args&nbsp;(list&nbsp;cell&nbsp;value)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
172&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;:beowulf})))
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
173&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(throw&nbsp;(ex-info
</span><br/>
<span class="covered" title="9 out of 9 forms covered">
174&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(str&nbsp;&quot;Uncynlic&nbsp;miercels&nbsp;in&nbsp;RPLACA:&nbsp;`&quot;&nbsp;cell&nbsp;&quot;`&nbsp;(&quot;&nbsp;(type&nbsp;cell)&nbsp;&quot;)&quot;)
</span><br/>
<span class="covered" title="10 out of 10 forms covered">
175&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{:cause&nbsp;:bad-cell
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
176&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:phase&nbsp;:host
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
177&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:function&nbsp;:rplaca
</span><br/>
<span class="covered" title="4 out of 4 forms covered">
178&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:args&nbsp;(list&nbsp;cell&nbsp;value)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
179&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;:beowulf}))))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
180&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
181&nbsp;&nbsp;(defn&nbsp;RPLACD
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
182&nbsp;&nbsp;&nbsp;&nbsp;&quot;Replace&nbsp;the&nbsp;CDR&nbsp;pointer&nbsp;of&nbsp;this&nbsp;`cell`&nbsp;with&nbsp;this&nbsp;`value`.&nbsp;Dangerous,&nbsp;should
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
183&nbsp;&nbsp;&nbsp;&nbsp;really&nbsp;not&nbsp;exist,&nbsp;but&nbsp;does&nbsp;in&nbsp;Lisp&nbsp;1.5&nbsp;(and&nbsp;was&nbsp;important&nbsp;for&nbsp;some
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
184&nbsp;&nbsp;&nbsp;&nbsp;performance&nbsp;hacks&nbsp;in&nbsp;early&nbsp;Lisps)&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
185&nbsp;&nbsp;&nbsp;&nbsp;[^ConsCell&nbsp;cell&nbsp;value]
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
186&nbsp;&nbsp;&nbsp;&nbsp;(if
</span><br/>
<span class="covered" title="4 out of 4 forms covered">
187&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(instance?&nbsp;ConsCell&nbsp;cell)
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
188&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if
</span><br/>
<span class="partial" title="11 out of 13 forms covered">
189&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(or
</span><br/>
<span class="covered" title="4 out of 4 forms covered">
190&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(instance?&nbsp;ConsCell&nbsp;value)
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
191&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(number?&nbsp;value)
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
192&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(symbol?&nbsp;value)
</span><br/>
<span class="not-covered" title="0 out of 2 forms covered">
193&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(=&nbsp;value&nbsp;NIL))
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
194&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(try
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
195&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(.rplacd&nbsp;cell&nbsp;value)
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
196&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cell
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
197&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(catch&nbsp;Throwable&nbsp;any
</span><br/>
<span class="not-covered" title="0 out of 3 forms covered">
198&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(throw&nbsp;(ex-info
</span><br/>
<span class="not-covered" title="0 out of 4 forms covered">
199&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(str&nbsp;(.getMessage&nbsp;any)&nbsp;&quot;&nbsp;in&nbsp;RPLACD:&nbsp;`&quot;)
</span><br/>
<span class="not-covered" title="0 out of 10 forms covered">
200&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{:cause&nbsp;:upstream-error
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
201&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:phase&nbsp;:host
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
202&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:function&nbsp;:rplacd
</span><br/>
<span class="not-covered" title="0 out of 4 forms covered">
203&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:args&nbsp;(list&nbsp;cell&nbsp;value)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
204&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;:beowulf}
</span><br/>
<span class="not-covered" title="0 out of 1 forms covered">
205&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;any))))
</span><br/>
<span class="not-covered" title="0 out of 3 forms covered">
206&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(throw&nbsp;(ex-info
</span><br/>
<span class="not-covered" title="0 out of 9 forms covered">
207&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(str&nbsp;&quot;Un-ġefōg&nbsp;þing&nbsp;in&nbsp;RPLACD:&nbsp;`&quot;&nbsp;value&nbsp;&quot;`&nbsp;(&quot;&nbsp;(type&nbsp;value)&nbsp;&quot;)&quot;)
</span><br/>
<span class="not-covered" title="0 out of 10 forms covered">
208&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{:cause&nbsp;:bad-value
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
209&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:phase&nbsp;:host
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
210&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:function&nbsp;:rplacd
</span><br/>
<span class="not-covered" title="0 out of 4 forms covered">
211&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:args&nbsp;(list&nbsp;cell&nbsp;value)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
212&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;:beowulf})))
</span><br/>
<span class="not-covered" title="0 out of 3 forms covered">
213&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(throw&nbsp;(ex-info
</span><br/>
<span class="not-covered" title="0 out of 9 forms covered">
214&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(str&nbsp;&quot;Uncynlic&nbsp;miercels&nbsp;in&nbsp;RPLACD:&nbsp;`&quot;&nbsp;cell&nbsp;&quot;`&nbsp;(&quot;&nbsp;(type&nbsp;cell)&nbsp;&quot;)&quot;)
</span><br/>
<span class="not-covered" title="0 out of 10 forms covered">
215&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{:cause&nbsp;:bad-cell
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
216&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:phase&nbsp;:host
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
217&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:detail&nbsp;:rplacd
</span><br/>
<span class="not-covered" title="0 out of 4 forms covered">
218&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:args&nbsp;(list&nbsp;cell&nbsp;value)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
219&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;:beowulf}))));;&nbsp;PLUS
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
220&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
221&nbsp;&nbsp;(defn&nbsp;LIST
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
222&nbsp;&nbsp;&nbsp;&nbsp;[&amp;&nbsp;args]
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
223&nbsp;&nbsp;&nbsp;&nbsp;(make-beowulf-list&nbsp;args))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
224&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
225&nbsp;&nbsp;;;;;&nbsp;Basic&nbsp;predicates&nbsp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
226&nbsp;&nbsp;
</span><br/>
<span class="partial" title="5 out of 36 forms covered">
227&nbsp;&nbsp;(defmacro&nbsp;NULL
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
228&nbsp;&nbsp;&nbsp;&nbsp;&quot;Returns&nbsp;`T`&nbsp;if&nbsp;and&nbsp;only&nbsp;if&nbsp;the&nbsp;argument&nbsp;`x`&nbsp;is&nbsp;bound&nbsp;to&nbsp;`NIL`;&nbsp;else&nbsp;`F`.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
229&nbsp;&nbsp;&nbsp;&nbsp;[x]
</span><br/>
<span class="not-covered" title="0 out of 1 forms covered">
230&nbsp;&nbsp;&nbsp;&nbsp;`(if&nbsp;(=&nbsp;~x&nbsp;NIL)&nbsp;T&nbsp;F))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
231&nbsp;&nbsp;
</span><br/>
<span class="partial" title="5 out of 36 forms covered">
232&nbsp;&nbsp;(defmacro&nbsp;NILP
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
233&nbsp;&nbsp;&nbsp;&nbsp;&quot;Not&nbsp;part&nbsp;of&nbsp;LISP&nbsp;1.5:&nbsp;`T`&nbsp;if&nbsp;`o`&nbsp;is&nbsp;`NIL`,&nbsp;else&nbsp;`NIL`.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
234&nbsp;&nbsp;&nbsp;&nbsp;[x]
</span><br/>
<span class="not-covered" title="0 out of 1 forms covered">
235&nbsp;&nbsp;&nbsp;&nbsp;`(if&nbsp;(=&nbsp;~x&nbsp;NIL)&nbsp;T&nbsp;NIL))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
236&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
237&nbsp;&nbsp;(defn&nbsp;ATOM
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
238&nbsp;&nbsp;&nbsp;&nbsp;&quot;Returns&nbsp;`T`&nbsp;if&nbsp;and&nbsp;only&nbsp;if&nbsp;the&nbsp;argument&nbsp;`x`&nbsp;is&nbsp;bound&nbsp;to&nbsp;an&nbsp;atom;&nbsp;else&nbsp;`F`.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
239&nbsp;&nbsp;&nbsp;&nbsp;It&nbsp;is&nbsp;not&nbsp;clear&nbsp;to&nbsp;me&nbsp;from&nbsp;the&nbsp;documentation&nbsp;whether&nbsp;`(ATOM&nbsp;7)`&nbsp;should&nbsp;return
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
240&nbsp;&nbsp;&nbsp;&nbsp;`T`&nbsp;or&nbsp;`F`.&nbsp;I&#x27;m&nbsp;going&nbsp;to&nbsp;assume&nbsp;`T`.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
241&nbsp;&nbsp;&nbsp;&nbsp;[x]
</span><br/>
<span class="covered" title="13 out of 13 forms covered">
242&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(or&nbsp;(symbol?&nbsp;x)&nbsp;(number?&nbsp;x))&nbsp;T&nbsp;F))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
243&nbsp;&nbsp;
</span><br/>
<span class="covered" title="57 out of 57 forms covered">
244&nbsp;&nbsp;(defmacro&nbsp;ATOM?
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
245&nbsp;&nbsp;&nbsp;&nbsp;&quot;The&nbsp;convention&nbsp;of&nbsp;returning&nbsp;`F`&nbsp;from&nbsp;predicates,&nbsp;rather&nbsp;than&nbsp;`NIL`,&nbsp;is&nbsp;going
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
246&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;tie&nbsp;me&nbsp;in&nbsp;knots.&nbsp;This&nbsp;is&nbsp;a&nbsp;variant&nbsp;of&nbsp;`ATOM`&nbsp;which&nbsp;returns&nbsp;`NIL`
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
247&nbsp;&nbsp;&nbsp;&nbsp;on&nbsp;failure.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
248&nbsp;&nbsp;&nbsp;&nbsp;[x]
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
249&nbsp;&nbsp;&nbsp;&nbsp;`(if&nbsp;(or&nbsp;(symbol?&nbsp;~x)&nbsp;(number?&nbsp;~x))&nbsp;T&nbsp;NIL))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
250&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
251&nbsp;&nbsp;(defn&nbsp;EQ
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
252&nbsp;&nbsp;&nbsp;&nbsp;&quot;Returns&nbsp;`T`&nbsp;if&nbsp;and&nbsp;only&nbsp;if&nbsp;both&nbsp;`x`&nbsp;and&nbsp;`y`&nbsp;are&nbsp;bound&nbsp;to&nbsp;the&nbsp;same&nbsp;atom,
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
253&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;`NIL`.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
254&nbsp;&nbsp;&nbsp;&nbsp;[x&nbsp;y]
</span><br/>
<span class="covered" title="12 out of 12 forms covered">
255&nbsp;&nbsp;&nbsp;&nbsp;(cond&nbsp;(and&nbsp;(instance?&nbsp;ConsCell&nbsp;x)
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
256&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(.equals&nbsp;x&nbsp;y))&nbsp;T
</span><br/>
<span class="covered" title="13 out of 13 forms covered">
257&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(and&nbsp;(=&nbsp;(ATOM&nbsp;x)&nbsp;T)&nbsp;(=&nbsp;x&nbsp;y))&nbsp;T
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
258&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:else&nbsp;NIL))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
259&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
260&nbsp;&nbsp;(defn&nbsp;EQUAL
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
261&nbsp;&nbsp;&nbsp;&nbsp;&quot;This&nbsp;is&nbsp;a&nbsp;predicate&nbsp;that&nbsp;is&nbsp;true&nbsp;if&nbsp;its&nbsp;two&nbsp;arguments&nbsp;are&nbsp;identical
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
262&nbsp;&nbsp;&nbsp;&nbsp;S-expressions,&nbsp;and&nbsp;false&nbsp;if&nbsp;they&nbsp;are&nbsp;different.&nbsp;(The&nbsp;elementary&nbsp;predicate
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
263&nbsp;&nbsp;&nbsp;&nbsp;`EQ`&nbsp;is&nbsp;defined&nbsp;only&nbsp;for&nbsp;atomic&nbsp;arguments.)&nbsp;The&nbsp;definition&nbsp;of&nbsp;`EQUAL`&nbsp;is
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
264&nbsp;&nbsp;&nbsp;&nbsp;an&nbsp;example&nbsp;of&nbsp;a&nbsp;conditional&nbsp;expression&nbsp;inside&nbsp;a&nbsp;conditional&nbsp;expression.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
265&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
266&nbsp;&nbsp;&nbsp;&nbsp;NOTE:&nbsp;returns&nbsp;`F`&nbsp;on&nbsp;failure,&nbsp;not&nbsp;`NIL`&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
267&nbsp;&nbsp;&nbsp;&nbsp;[x&nbsp;y]
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
268&nbsp;&nbsp;&nbsp;&nbsp;(cond
</span><br/>
<span class="covered" title="11 out of 11 forms covered">
269&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(=&nbsp;(ATOM&nbsp;x)&nbsp;T)&nbsp;(if&nbsp;(=&nbsp;x&nbsp;y)&nbsp;T&nbsp;F)
</span><br/>
<span class="covered" title="18 out of 18 forms covered">
270&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(=&nbsp;(EQUAL&nbsp;(CAR&nbsp;x)&nbsp;(CAR&nbsp;y))&nbsp;T)&nbsp;(EQUAL&nbsp;(CDR&nbsp;x)&nbsp;(CDR&nbsp;y))
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
271&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:else&nbsp;F))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
272&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
273&nbsp;&nbsp;(defn&nbsp;AND
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
274&nbsp;&nbsp;&nbsp;&nbsp;&quot;`T`&nbsp;if&nbsp;and&nbsp;only&nbsp;if&nbsp;none&nbsp;of&nbsp;my&nbsp;`args`&nbsp;evaluate&nbsp;to&nbsp;either&nbsp;`F`&nbsp;or&nbsp;`NIL`,
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
275&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;`F`.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
276&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
277&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;In&nbsp;`beowulf.host`&nbsp;principally&nbsp;because&nbsp;I&nbsp;don&#x27;t&nbsp;yet&nbsp;feel&nbsp;confident&nbsp;to&nbsp;define
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
278&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;varargs&nbsp;functions&nbsp;in&nbsp;Lisp.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
279&nbsp;&nbsp;&nbsp;&nbsp;[&amp;&nbsp;args]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
280&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;(println&nbsp;&quot;AND:&nbsp;&quot;&nbsp;args&nbsp;&quot;&nbsp;type:&nbsp;&quot;&nbsp;(type&nbsp;args)&nbsp;&quot;&nbsp;seq?&nbsp;&quot;&nbsp;(seq?&nbsp;args))
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
281&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;(println&nbsp;&quot;&nbsp;&nbsp;filtered:&nbsp;&quot;&nbsp;(seq&nbsp;(filter&nbsp;#{F&nbsp;NIL}&nbsp;args)))
</span><br/>
<span class="partial" title="5 out of 7 forms covered">
282&nbsp;&nbsp;&nbsp;&nbsp;(cond&nbsp;(=&nbsp;NIL&nbsp;args)&nbsp;T
</span><br/>
<span class="covered" title="14 out of 14 forms covered">
283&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(seq?&nbsp;args)&nbsp;(if&nbsp;(seq&nbsp;(filter&nbsp;#{F&nbsp;NIL}&nbsp;args))&nbsp;F&nbsp;T)
</span><br/>
<span class="not-covered" title="0 out of 1 forms covered">
284&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:else&nbsp;T))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
285&nbsp;&nbsp;
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
286&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
287&nbsp;&nbsp;(defn&nbsp;OR
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
288&nbsp;&nbsp;&nbsp;&nbsp;&quot;`T`&nbsp;if&nbsp;and&nbsp;only&nbsp;if&nbsp;at&nbsp;least&nbsp;one&nbsp;of&nbsp;my&nbsp;`args`&nbsp;evaluates&nbsp;to&nbsp;something&nbsp;other
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
289&nbsp;&nbsp;&nbsp;&nbsp;than&nbsp;either&nbsp;`F`&nbsp;or&nbsp;`NIL`,&nbsp;else&nbsp;`F`.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
290&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
291&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;In&nbsp;`beowulf.host`&nbsp;principally&nbsp;because&nbsp;I&nbsp;don&#x27;t&nbsp;yet&nbsp;feel&nbsp;confident&nbsp;to&nbsp;define
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
292&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;varargs&nbsp;functions&nbsp;in&nbsp;Lisp.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
293&nbsp;&nbsp;&nbsp;&nbsp;[&amp;&nbsp;args]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
294&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;(println&nbsp;&quot;OR:&nbsp;&quot;&nbsp;args&nbsp;&quot;&nbsp;type:&nbsp;&quot;&nbsp;(type&nbsp;args)&nbsp;&quot;&nbsp;seq?&nbsp;&quot;&nbsp;(seq?&nbsp;args))
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
295&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;(println&nbsp;&quot;&nbsp;&nbsp;filtered:&nbsp;&quot;&nbsp;(seq&nbsp;(remove&nbsp;#{F&nbsp;NIL}&nbsp;args)))
</span><br/>
<span class="not-covered" title="0 out of 7 forms covered">
296&nbsp;&nbsp;&nbsp;&nbsp;(cond&nbsp;(=&nbsp;NIL&nbsp;args)&nbsp;F
</span><br/>
<span class="not-covered" title="0 out of 14 forms covered">
297&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(seq?&nbsp;args)&nbsp;(if&nbsp;(seq&nbsp;(remove&nbsp;#{F&nbsp;NIL}&nbsp;args))&nbsp;T&nbsp;F)
</span><br/>
<span class="not-covered" title="0 out of 1 forms covered">
298&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:else&nbsp;F))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
299&nbsp;&nbsp;
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
300&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
301&nbsp;&nbsp;;;;;&nbsp;Operations&nbsp;on&nbsp;lists&nbsp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
302&nbsp;&nbsp;;;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
303&nbsp;&nbsp;;;&nbsp;TODO:&nbsp;These&nbsp;are&nbsp;candidates&nbsp;for&nbsp;moving&nbsp;to&nbsp;Lisp&nbsp;urgently!
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
304&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
305&nbsp;&nbsp;(defn&nbsp;ASSOC
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
306&nbsp;&nbsp;&nbsp;&nbsp;&quot;If&nbsp;a&nbsp;is&nbsp;an&nbsp;association&nbsp;list&nbsp;such&nbsp;as&nbsp;the&nbsp;one&nbsp;formed&nbsp;by&nbsp;PAIRLIS&nbsp;in&nbsp;the&nbsp;above
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
307&nbsp;&nbsp;&nbsp;&nbsp;example,&nbsp;then&nbsp;assoc&nbsp;will&nbsp;produce&nbsp;the&nbsp;first&nbsp;pair&nbsp;whose&nbsp;first&nbsp;term&nbsp;is&nbsp;x.&nbsp;Thus
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
308&nbsp;&nbsp;&nbsp;&nbsp;it&nbsp;is&nbsp;a&nbsp;table&nbsp;searching&nbsp;function.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
309&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
310&nbsp;&nbsp;&nbsp;&nbsp;All&nbsp;args&nbsp;are&nbsp;assumed&nbsp;to&nbsp;be&nbsp;`beowulf.cons-cell&#x2F;ConsCell`&nbsp;objects.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
311&nbsp;&nbsp;&nbsp;&nbsp;See&nbsp;page&nbsp;12&nbsp;of&nbsp;the&nbsp;Lisp&nbsp;1.5&nbsp;Programmers&nbsp;Manual.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
312&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
313&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**NOTE&nbsp;THAT**&nbsp;this&nbsp;function&nbsp;is&nbsp;overridden&nbsp;by&nbsp;an&nbsp;implementation&nbsp;in&nbsp;Lisp,
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
314&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;but&nbsp;is&nbsp;currently&nbsp;still&nbsp;present&nbsp;for&nbsp;bootstrapping.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
315&nbsp;&nbsp;&nbsp;&nbsp;[x&nbsp;a]
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
316&nbsp;&nbsp;&nbsp;&nbsp;(cond
</span><br/>
<span class="covered" title="4 out of 4 forms covered">
317&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(=&nbsp;NIL&nbsp;a)&nbsp;NIL&nbsp;;;&nbsp;this&nbsp;clause&nbsp;is&nbsp;not&nbsp;present&nbsp;in&nbsp;the&nbsp;original&nbsp;but&nbsp;is&nbsp;added&nbsp;for
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
318&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;robustness.
</span><br/>
<span class="covered" title="11 out of 11 forms covered">
319&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(=&nbsp;(EQUAL&nbsp;(CAAR&nbsp;a)&nbsp;x)&nbsp;T)&nbsp;(CAR&nbsp;a)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
320&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:else
</span><br/>
<span class="covered" title="6 out of 6 forms covered">
321&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(ASSOC&nbsp;x&nbsp;(CDR&nbsp;a))))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
322&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
323&nbsp;&nbsp;(defn&nbsp;PAIRLIS
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
324&nbsp;&nbsp;&nbsp;&nbsp;&quot;This&nbsp;function&nbsp;gives&nbsp;the&nbsp;list&nbsp;of&nbsp;pairs&nbsp;of&nbsp;corresponding&nbsp;elements&nbsp;of&nbsp;the
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
325&nbsp;&nbsp;&nbsp;&nbsp;lists&nbsp;`x`&nbsp;and&nbsp;`y`,&nbsp;and&nbsp;APPENDs&nbsp;this&nbsp;to&nbsp;the&nbsp;list&nbsp;`a`.&nbsp;The&nbsp;resultant&nbsp;list
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
326&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;pairs,&nbsp;which&nbsp;is&nbsp;like&nbsp;a&nbsp;table&nbsp;with&nbsp;two&nbsp;columns,&nbsp;is&nbsp;called&nbsp;an
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
327&nbsp;&nbsp;&nbsp;&nbsp;association&nbsp;list.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
328&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
329&nbsp;&nbsp;&nbsp;&nbsp;Eessentially,&nbsp;it&nbsp;builds&nbsp;the&nbsp;environment&nbsp;on&nbsp;the&nbsp;stack,&nbsp;implementing&nbsp;shallow
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
330&nbsp;&nbsp;&nbsp;&nbsp;binding.
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
331&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
332&nbsp;&nbsp;&nbsp;&nbsp;All&nbsp;args&nbsp;are&nbsp;assumed&nbsp;to&nbsp;be&nbsp;`beowulf.cons-cell&#x2F;ConsCell`&nbsp;objects.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
333&nbsp;&nbsp;&nbsp;&nbsp;See&nbsp;page&nbsp;12&nbsp;of&nbsp;the&nbsp;Lisp&nbsp;1.5&nbsp;Programmers&nbsp;Manual.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
334&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
335&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**NOTE&nbsp;THAT**&nbsp;this&nbsp;function&nbsp;is&nbsp;overridden&nbsp;by&nbsp;an&nbsp;implementation&nbsp;in&nbsp;Lisp,
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
336&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;but&nbsp;is&nbsp;currently&nbsp;still&nbsp;present&nbsp;for&nbsp;bootstrapping.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
337&nbsp;&nbsp;&nbsp;&nbsp;[x&nbsp;y&nbsp;a]
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
338&nbsp;&nbsp;&nbsp;&nbsp;(cond
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
339&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;the&nbsp;original&nbsp;tests&nbsp;only&nbsp;x;&nbsp;testing&nbsp;y&nbsp;as&nbsp;well&nbsp;will&nbsp;be&nbsp;a&nbsp;little&nbsp;more
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
340&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;robust&nbsp;if&nbsp;`x`&nbsp;and&nbsp;`y`&nbsp;are&nbsp;not&nbsp;the&nbsp;same&nbsp;length.
</span><br/>
<span class="covered" title="11 out of 11 forms covered">
341&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(or&nbsp;(=&nbsp;NIL&nbsp;x)&nbsp;(=&nbsp;NIL&nbsp;y))&nbsp;a
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
342&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:else&nbsp;(make-cons-cell
</span><br/>
<span class="covered" title="8 out of 8 forms covered">
343&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(make-cons-cell&nbsp;(CAR&nbsp;x)&nbsp;(CAR&nbsp;y))
</span><br/>
<span class="covered" title="9 out of 9 forms covered">
344&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(PAIRLIS&nbsp;(CDR&nbsp;x)&nbsp;(CDR&nbsp;y)&nbsp;a))))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
345&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
346&nbsp;&nbsp;;;;;&nbsp;Arithmetic&nbsp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
347&nbsp;&nbsp;;;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
348&nbsp;&nbsp;;;&nbsp;TODO:&nbsp;When&nbsp;in&nbsp;strict&nbsp;mode,&nbsp;should&nbsp;we&nbsp;limit&nbsp;arithmetic&nbsp;precision&nbsp;to&nbsp;that
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
349&nbsp;&nbsp;;;&nbsp;supported&nbsp;by&nbsp;Lisp&nbsp;1.5?
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
350&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
351&nbsp;&nbsp;(defn&nbsp;PLUS
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
352&nbsp;&nbsp;&nbsp;&nbsp;[&amp;&nbsp;args]
</span><br/>
<span class="covered" title="5 out of 5 forms covered">
353&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;[s&nbsp;(apply&nbsp;+&nbsp;args)]
</span><br/>
<span class="covered" title="7 out of 7 forms covered">
354&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(integer?&nbsp;s)&nbsp;s&nbsp;(float&nbsp;s))))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
355&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
356&nbsp;&nbsp;(defn&nbsp;TIMES
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
357&nbsp;&nbsp;&nbsp;&nbsp;[&amp;&nbsp;args]
</span><br/>
<span class="covered" title="5 out of 5 forms covered">
358&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;[p&nbsp;(apply&nbsp;*&nbsp;args)]
</span><br/>
<span class="partial" title="5 out of 7 forms covered">
359&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(integer?&nbsp;p)&nbsp;p&nbsp;(float&nbsp;p))))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
360&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
361&nbsp;&nbsp;(defn&nbsp;DIFFERENCE
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
362&nbsp;&nbsp;&nbsp;&nbsp;[x&nbsp;y]
</span><br/>
<span class="covered" title="4 out of 4 forms covered">
363&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;[d&nbsp;(-&nbsp;x&nbsp;y)]
</span><br/>
<span class="partial" title="5 out of 7 forms covered">
364&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(integer?&nbsp;d)&nbsp;d&nbsp;(float&nbsp;d))))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
365&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
366&nbsp;&nbsp;(defn&nbsp;QUOTIENT
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
367&nbsp;&nbsp;&nbsp;&nbsp;&quot;I&#x27;m&nbsp;not&nbsp;certain&nbsp;from&nbsp;the&nbsp;documentation&nbsp;whether&nbsp;Lisp&nbsp;1.5&nbsp;`QUOTIENT`&nbsp;returned
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
368&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;integer&nbsp;part&nbsp;of&nbsp;the&nbsp;quotient,&nbsp;or&nbsp;a&nbsp;realnum&nbsp;representing&nbsp;the&nbsp;whole
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
369&nbsp;&nbsp;&nbsp;&nbsp;quotient.&nbsp;I&nbsp;am&nbsp;for&nbsp;now&nbsp;implementing&nbsp;the&nbsp;latter.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
370&nbsp;&nbsp;&nbsp;&nbsp;[x&nbsp;y]
</span><br/>
<span class="covered" title="4 out of 4 forms covered">
371&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;[q&nbsp;(&#x2F;&nbsp;x&nbsp;y)]
</span><br/>
<span class="covered" title="7 out of 7 forms covered">
372&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(integer?&nbsp;q)&nbsp;q&nbsp;(float&nbsp;q))))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
373&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
374&nbsp;&nbsp;(defn&nbsp;REMAINDER
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
375&nbsp;&nbsp;&nbsp;&nbsp;[x&nbsp;y]
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
376&nbsp;&nbsp;&nbsp;&nbsp;(rem&nbsp;x&nbsp;y))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
377&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
378&nbsp;&nbsp;(defn&nbsp;ADD1
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
379&nbsp;&nbsp;&nbsp;&nbsp;[x]
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
380&nbsp;&nbsp;&nbsp;&nbsp;(inc&nbsp;x))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
381&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
382&nbsp;&nbsp;(defn&nbsp;SUB1
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
383&nbsp;&nbsp;&nbsp;&nbsp;[x]
</span><br/>
<span class="not-covered" title="0 out of 2 forms covered">
384&nbsp;&nbsp;&nbsp;&nbsp;(dec&nbsp;x))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
385&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
386&nbsp;&nbsp;(defn&nbsp;FIXP
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
387&nbsp;&nbsp;&nbsp;&nbsp;[x]
</span><br/>
<span class="not-covered" title="0 out of 6 forms covered">
388&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(integer?&nbsp;x)&nbsp;T&nbsp;F))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
389&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
390&nbsp;&nbsp;(defn&nbsp;NUMBERP
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
391&nbsp;&nbsp;&nbsp;&nbsp;[x]
</span><br/>
<span class="covered" title="6 out of 6 forms covered">
392&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(number?&nbsp;x)&nbsp;T&nbsp;F))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
393&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
394&nbsp;&nbsp;(defn&nbsp;LESSP
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
395&nbsp;&nbsp;&nbsp;&nbsp;[x&nbsp;y]
</span><br/>
<span class="not-covered" title="0 out of 6 forms covered">
396&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(&lt;&nbsp;x&nbsp;y)&nbsp;T&nbsp;F))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
397&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
398&nbsp;&nbsp;(defn&nbsp;GREATERP
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
399&nbsp;&nbsp;&nbsp;&nbsp;[x&nbsp;y]
</span><br/>
<span class="not-covered" title="0 out of 6 forms covered">
400&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(&gt;&nbsp;x&nbsp;y)&nbsp;T&nbsp;F))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
401&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
402&nbsp;&nbsp;;;;;&nbsp;Miscellaneous&nbsp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
403&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
404&nbsp;&nbsp;(defn&nbsp;GENSYM
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
405&nbsp;&nbsp;&nbsp;&nbsp;&quot;Generate&nbsp;a&nbsp;unique&nbsp;symbol.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
406&nbsp;&nbsp;&nbsp;&nbsp;[]
</span><br/>
<span class="covered" title="9 out of 9 forms covered">
407&nbsp;&nbsp;&nbsp;&nbsp;(symbol&nbsp;(upper-case&nbsp;(str&nbsp;(gensym&nbsp;&quot;SYM&quot;)))))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
408&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
409&nbsp;&nbsp;(defn&nbsp;ERROR
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
410&nbsp;&nbsp;&nbsp;&nbsp;&quot;Throw&nbsp;an&nbsp;error&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
411&nbsp;&nbsp;&nbsp;&nbsp;[&amp;&nbsp;args]
</span><br/>
<span class="not-covered" title="0 out of 14 forms covered">
412&nbsp;&nbsp;&nbsp;&nbsp;(throw&nbsp;(ex-info&nbsp;&quot;LISP&nbsp;STÆFLEAHTER&quot;&nbsp;{:args&nbsp;args
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
413&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:phase&nbsp;:eval
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
414&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:function&nbsp;&#x27;ERROR
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
415&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;:lisp
</span><br/>
<span class="not-covered" title="0 out of 8 forms covered">
416&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:code&nbsp;(or&nbsp;(first&nbsp;args)&nbsp;&#x27;A1)})))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
417&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
418&nbsp;&nbsp;;;;;&nbsp;Assignment&nbsp;and&nbsp;the&nbsp;object&nbsp;list&nbsp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
419&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
420&nbsp;&nbsp;(defn&nbsp;OBLIST
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
421&nbsp;&nbsp;&nbsp;&nbsp;&quot;Return&nbsp;a&nbsp;list&nbsp;of&nbsp;the&nbsp;symbols&nbsp;currently&nbsp;bound&nbsp;on&nbsp;the&nbsp;object&nbsp;list.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
422&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
423&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**NOTE&nbsp;THAT**&nbsp;in&nbsp;the&nbsp;Lisp&nbsp;1.5&nbsp;manual,&nbsp;footnote&nbsp;at&nbsp;the&nbsp;bottom&nbsp;of&nbsp;page&nbsp;69,&nbsp;it&nbsp;implies&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
424&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;that&nbsp;an&nbsp;argument&nbsp;can&nbsp;be&nbsp;passed&nbsp;but&nbsp;I&#x27;m&nbsp;not&nbsp;sure&nbsp;of&nbsp;the&nbsp;semantics&nbsp;of
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
425&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
426&nbsp;&nbsp;&nbsp;&nbsp;[]
</span><br/>
<span class="not-covered" title="0 out of 7 forms covered">
427&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(instance?&nbsp;ConsCell&nbsp;@oblist)
</span><br/>
<span class="not-covered" title="0 out of 8 forms covered">
428&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(make-beowulf-list&nbsp;(map&nbsp;CAR&nbsp;@oblist))
</span><br/>
<span class="not-covered" title="0 out of 1 forms covered">
429&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NIL))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
430&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
431&nbsp;&nbsp;(def&nbsp;magic-marker
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
432&nbsp;&nbsp;&nbsp;&nbsp;&quot;The&nbsp;unexplained&nbsp;magic&nbsp;number&nbsp;which&nbsp;marks&nbsp;the&nbsp;start&nbsp;of&nbsp;a&nbsp;property&nbsp;list.&quot;
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
433&nbsp;&nbsp;&nbsp;&nbsp;(Integer&#x2F;parseInt&nbsp;&quot;77777&quot;&nbsp;8))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
434&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
435&nbsp;&nbsp;(defn&nbsp;hit-or-miss-assoc
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
436&nbsp;&nbsp;&nbsp;&nbsp;&quot;Find&nbsp;the&nbsp;position&nbsp;of&nbsp;the&nbsp;binding&nbsp;of&nbsp;this&nbsp;`target`&nbsp;in&nbsp;a&nbsp;Lisp&nbsp;1.5&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
437&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;property&nbsp;list&nbsp;`plist`.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
438&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
439&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lisp&nbsp;1.5&nbsp;property&nbsp;lists&nbsp;are&nbsp;not&nbsp;assoc&nbsp;lists,&nbsp;but&nbsp;lists&nbsp;of&nbsp;the&nbsp;form
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
440&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`(name&nbsp;value&nbsp;name&nbsp;value&nbsp;name&nbsp;value...)`.&nbsp;It&#x27;s&nbsp;therefore&nbsp;necessary&nbsp;to
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
441&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;recurse&nbsp;down&nbsp;the&nbsp;list&nbsp;two&nbsp;entries&nbsp;at&nbsp;a&nbsp;time&nbsp;to&nbsp;avoid&nbsp;confusing&nbsp;names
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
442&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;values.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
443&nbsp;&nbsp;&nbsp;&nbsp;[target&nbsp;plist]
</span><br/>
<span class="covered" title="13 out of 13 forms covered">
444&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(and&nbsp;(instance?&nbsp;ConsCell&nbsp;plist)(even?&nbsp;(count&nbsp;plist)))
</span><br/>
<span class="partial" title="6 out of 7 forms covered">
445&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(cond&nbsp;(=&nbsp;plist&nbsp;NIL)&nbsp;NIL
</span><br/>
<span class="covered" title="6 out of 6 forms covered">
446&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(=&nbsp;(first&nbsp;plist)&nbsp;target)&nbsp;plist
</span><br/>
<span class="covered" title="6 out of 6 forms covered">
447&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:else&nbsp;(hit-or-miss-assoc&nbsp;target&nbsp;(CDDR&nbsp;plist)))
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
448&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NIL))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
449&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
450&nbsp;&nbsp;(defn&nbsp;PUT
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
451&nbsp;&nbsp;&nbsp;&nbsp;&quot;Put&nbsp;this&nbsp;`value`&nbsp;as&nbsp;the&nbsp;value&nbsp;of&nbsp;the&nbsp;property&nbsp;indicated&nbsp;by&nbsp;this&nbsp;`indicator`&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
452&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;this&nbsp;`symbol`.&nbsp;Return&nbsp;`value`&nbsp;on&nbsp;success.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
453&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
454&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOTE&nbsp;THAT&nbsp;there&nbsp;is&nbsp;no&nbsp;`PUT`&nbsp;defined&nbsp;in&nbsp;the&nbsp;manual,&nbsp;but&nbsp;it&nbsp;would&nbsp;have&nbsp;been&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
455&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;easy&nbsp;to&nbsp;have&nbsp;defined&nbsp;it&nbsp;so&nbsp;I&nbsp;don&#x27;t&nbsp;think&nbsp;this&nbsp;fully&nbsp;counts&nbsp;as&nbsp;an&nbsp;extension.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
456&nbsp;&nbsp;&nbsp;&nbsp;[symbol&nbsp;indicator&nbsp;value]
</span><br/>
<span class="covered" title="7 out of 7 forms covered">
457&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;[binding&nbsp;(ASSOC&nbsp;symbol&nbsp;@oblist)]
</span><br/>
<span class="covered" title="5 out of 5 forms covered">
458&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(instance?&nbsp;ConsCell&nbsp;binding)
</span><br/>
<span class="covered" title="7 out of 7 forms covered">
459&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;[prop&nbsp;(hit-or-miss-assoc&nbsp;indicator&nbsp;(CDDR&nbsp;binding))]
</span><br/>
<span class="covered" title="5 out of 5 forms covered">
460&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(instance?&nbsp;ConsCell&nbsp;prop)
</span><br/>
<span class="covered" title="6 out of 6 forms covered">
461&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(RPLACA&nbsp;(CDR&nbsp;prop)&nbsp;value)
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
462&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(RPLACD&nbsp;binding
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
463&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(make-cons-cell
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
464&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;magic-marker
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
465&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(make-cons-cell
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
466&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;indicator
</span><br/>
<span class="covered" title="6 out of 6 forms covered">
467&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(make-cons-cell&nbsp;value&nbsp;(CDDR&nbsp;binding)))))))
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
468&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(swap!
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
469&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oblist
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
470&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(fn&nbsp;[ob&nbsp;s&nbsp;p&nbsp;v]
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
471&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(make-cons-cell
</span><br/>
<span class="covered" title="8 out of 8 forms covered">
472&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(make-beowulf-list&nbsp;(list&nbsp;s&nbsp;magic-marker&nbsp;p&nbsp;v))
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
473&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ob))
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
474&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;symbol&nbsp;indicator&nbsp;value)))
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
475&nbsp;&nbsp;&nbsp;&nbsp;value)
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
476&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
477&nbsp;&nbsp;(defn&nbsp;GET
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
478&nbsp;&nbsp;&nbsp;&nbsp;&quot;From&nbsp;the&nbsp;manual:
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
479&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
480&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#x27;`get`&nbsp;is&nbsp;somewhat&nbsp;like&nbsp;`prop`;&nbsp;however&nbsp;its&nbsp;value&nbsp;is&nbsp;car&nbsp;of&nbsp;the&nbsp;rest&nbsp;of
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
481&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;list&nbsp;if&nbsp;the&nbsp;`indicator`&nbsp;is&nbsp;found,&nbsp;and&nbsp;NIL&nbsp;otherwise.&#x27;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
482&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
483&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;It&#x27;s&nbsp;clear&nbsp;that&nbsp;`GET`&nbsp;is&nbsp;expected&nbsp;to&nbsp;be&nbsp;defined&nbsp;in&nbsp;terms&nbsp;of&nbsp;`PROP`,&nbsp;but
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
484&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;we&nbsp;can&#x27;t&nbsp;implement&nbsp;`PROP`&nbsp;here&nbsp;because&nbsp;we&nbsp;lack&nbsp;`EVAL`;&nbsp;and&nbsp;we&nbsp;can&#x27;t&nbsp;have
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
485&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`EVAL`&nbsp;here&nbsp;because&nbsp;both&nbsp;it&nbsp;and&nbsp;`APPLY`&nbsp;depends&nbsp;on&nbsp;`GET`.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
486&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
487&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OK,&nbsp;It&#x27;s&nbsp;worse&nbsp;than&nbsp;that:&nbsp;the&nbsp;statement&nbsp;of&nbsp;the&nbsp;definition&nbsp;of&nbsp;`GET`&nbsp;(and&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
488&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of)&nbsp;`PROP`&nbsp;on&nbsp;page&nbsp;59&nbsp;says&nbsp;that&nbsp;the&nbsp;first&nbsp;argument&nbsp;to&nbsp;each&nbsp;must&nbsp;be&nbsp;a&nbsp;list;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
489&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;But&nbsp;the&nbsp;in&nbsp;the&nbsp;definition&nbsp;of&nbsp;`ASSOC`&nbsp;on&nbsp;page&nbsp;70,&nbsp;when&nbsp;`GET`&nbsp;is&nbsp;called&nbsp;its
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
490&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;first&nbsp;argument&nbsp;is&nbsp;always&nbsp;an&nbsp;atom.&nbsp;Since&nbsp;it&#x27;s&nbsp;`ASSOC`&nbsp;and&nbsp;`EVAL`&nbsp;which&nbsp;I&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
491&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;need&nbsp;to&nbsp;make&nbsp;work,&nbsp;I&#x27;m&nbsp;going&nbsp;to&nbsp;assume&nbsp;that&nbsp;page&nbsp;59&nbsp;is&nbsp;wrong.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
492&nbsp;&nbsp;&nbsp;&nbsp;[symbol&nbsp;indicator]
</span><br/>
<span class="covered" title="7 out of 7 forms covered">
493&nbsp;&nbsp;&nbsp;&nbsp;(let&nbsp;[binding&nbsp;(ASSOC&nbsp;symbol&nbsp;@oblist)
</span><br/>
<span class="partial" title="2 out of 3 forms covered">
494&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val&nbsp;(cond
</span><br/>
<span class="covered" title="4 out of 4 forms covered">
495&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(=&nbsp;binding&nbsp;NIL)&nbsp;NIL
</span><br/>
<span class="covered" title="2 out of 2 forms covered">
496&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(=&nbsp;magic-marker
</span><br/>
<span class="covered" title="5 out of 5 forms covered">
497&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(CADR&nbsp;binding))&nbsp;(loop&nbsp;[b&nbsp;binding]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
498&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;&nbsp;(println&nbsp;&quot;GET&nbsp;loop,&nbsp;seeking&nbsp;&quot;&nbsp;indicator&nbsp;&quot;:&quot;)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
499&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;&nbsp;(pretty-print&nbsp;b)
</span><br/>
<span class="covered" title="5 out of 5 forms covered">
500&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(instance?&nbsp;ConsCell&nbsp;b)
</span><br/>
<span class="covered" title="6 out of 6 forms covered">
501&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(=&nbsp;(CAR&nbsp;b)&nbsp;indicator)
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
502&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(CADR&nbsp;b)&nbsp;;;&nbsp;&lt;-&nbsp;this&nbsp;is&nbsp;what&nbsp;we&nbsp;should&nbsp;actually&nbsp;be&nbsp;returning
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
503&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(recur&nbsp;(CDR&nbsp;b)))
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
504&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NIL))
</span><br/>
<span class="not-covered" title="0 out of 1 forms covered">
505&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:else&nbsp;(throw
</span><br/>
<span class="not-covered" title="0 out of 3 forms covered">
506&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(ex-info&nbsp;&quot;Misformatted&nbsp;property&nbsp;list&nbsp;(missing&nbsp;magic&nbsp;marker)&quot;
</span><br/>
<span class="not-covered" title="0 out of 8 forms covered">
507&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{:phase&nbsp;:host
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
508&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:function&nbsp;:get
</span><br/>
<span class="not-covered" title="0 out of 4 forms covered">
509&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:args&nbsp;(list&nbsp;symbol&nbsp;indicator)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
510&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:type&nbsp;:beowulf})))]
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
511&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;&nbsp;(println&nbsp;&quot;&lt;&lt;&nbsp;GET&nbsp;returning:&nbsp;&quot;&nbsp;val)
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
512&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
513&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
514&nbsp;&nbsp;(defn&nbsp;DEFLIST
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
515&nbsp;&nbsp;&nbsp;&nbsp;&quot;For&nbsp;each&nbsp;pair&nbsp;in&nbsp;this&nbsp;association&nbsp;list&nbsp;`a-list`,&nbsp;set&nbsp;the&nbsp;property&nbsp;with&nbsp;this
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
516&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`indicator`&nbsp;of&nbsp;the&nbsp;symbol&nbsp;which&nbsp;is&nbsp;the&nbsp;first&nbsp;element&nbsp;of&nbsp;the&nbsp;pair&nbsp;to&nbsp;the&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
517&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value&nbsp;which&nbsp;is&nbsp;the&nbsp;second&nbsp;element&nbsp;of&nbsp;the&nbsp;pair.&nbsp;See&nbsp;page&nbsp;58&nbsp;of&nbsp;the&nbsp;manual.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
518&nbsp;&nbsp;&nbsp;&nbsp;[a-list&nbsp;indicator]
</span><br/>
<span class="not-covered" title="0 out of 3 forms covered">
519&nbsp;&nbsp;&nbsp;&nbsp;(map
</span><br/>
<span class="not-covered" title="0 out of 9 forms covered">
520&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#(PUT&nbsp;(CAR&nbsp;%)&nbsp;indicator&nbsp;(CDR&nbsp;%))
</span><br/>
<span class="not-covered" title="0 out of 1 forms covered">
521&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a-list))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
522&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
523&nbsp;&nbsp;(defn&nbsp;DEFINE
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
524&nbsp;&nbsp;&nbsp;&nbsp;&quot;Bootstrap-only&nbsp;version&nbsp;of&nbsp;`DEFINE`&nbsp;which,&nbsp;post&nbsp;boostrap,&nbsp;can&nbsp;be&nbsp;overwritten&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
525&nbsp;&nbsp;&nbsp;&nbsp;in&nbsp;LISP.&nbsp;
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
526&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
527&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;single&nbsp;argument&nbsp;to&nbsp;`DEFINE`&nbsp;should&nbsp;be&nbsp;an&nbsp;association&nbsp;list&nbsp;of&nbsp;symbols&nbsp;to
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
528&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lambda&nbsp;functions.&nbsp;See&nbsp;page&nbsp;58&nbsp;of&nbsp;the&nbsp;manual.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
529&nbsp;&nbsp;&nbsp;&nbsp;[a-list]
</span><br/>
<span class="not-covered" title="0 out of 4 forms covered">
530&nbsp;&nbsp;&nbsp;&nbsp;(DEFLIST&nbsp;a-list&nbsp;&#x27;EXPR))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
531&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
532&nbsp;&nbsp;(defn&nbsp;SET
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
533&nbsp;&nbsp;&nbsp;&nbsp;&quot;Implementation&nbsp;of&nbsp;SET&nbsp;in&nbsp;Clojure.&nbsp;Add&nbsp;to&nbsp;the&nbsp;`oblist`&nbsp;a&nbsp;binding&nbsp;of&nbsp;the
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
534&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value&nbsp;of&nbsp;`var`&nbsp;to&nbsp;the&nbsp;value&nbsp;of&nbsp;`val`.&nbsp;NOTE&nbsp;WELL:&nbsp;this&nbsp;is&nbsp;not&nbsp;SETQ!&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
535&nbsp;&nbsp;&nbsp;&nbsp;[symbol&nbsp;val]
</span><br/>
<span class="not-covered" title="0 out of 5 forms covered">
536&nbsp;&nbsp;&nbsp;&nbsp;(PUT&nbsp;symbol&nbsp;&#x27;APVAL&nbsp;val))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
537&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
538&nbsp;&nbsp;;;;;&nbsp;TRACE&nbsp;and&nbsp;friends&nbsp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
539&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
540&nbsp;&nbsp;(def&nbsp;traced-symbols
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
541&nbsp;&nbsp;&nbsp;&nbsp;&quot;Symbols&nbsp;currently&nbsp;being&nbsp;traced.&quot;
</span><br/>
<span class="covered" title="3 out of 3 forms covered">
542&nbsp;&nbsp;&nbsp;&nbsp;(atom&nbsp;#{}))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
543&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
544&nbsp;&nbsp;(defn&nbsp;traced?
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
545&nbsp;&nbsp;&nbsp;&nbsp;&quot;Return&nbsp;`true`&nbsp;iff&nbsp;`s`&nbsp;is&nbsp;a&nbsp;symbol&nbsp;currently&nbsp;being&nbsp;traced,&nbsp;else&nbsp;`nil`.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
546&nbsp;&nbsp;&nbsp;&nbsp;[s]
</span><br/>
<span class="partial" title="7 out of 8 forms covered">
547&nbsp;&nbsp;&nbsp;&nbsp;(try&nbsp;(contains?&nbsp;@traced-symbols&nbsp;s)
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
548&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(catch&nbsp;Throwable&nbsp;_&nbsp;nil)))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
549&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
550&nbsp;&nbsp;(defn&nbsp;TRACE
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
551&nbsp;&nbsp;&nbsp;&nbsp;&quot;Add&nbsp;this&nbsp;`s`&nbsp;to&nbsp;the&nbsp;set&nbsp;of&nbsp;symbols&nbsp;currently&nbsp;being&nbsp;traced.&nbsp;If&nbsp;`s`
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
552&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;not&nbsp;a&nbsp;symbol&nbsp;or&nbsp;sequence&nbsp;of&nbsp;symbols,&nbsp;does&nbsp;nothing.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
553&nbsp;&nbsp;&nbsp;&nbsp;[s]
</span><br/>
<span class="not-covered" title="0 out of 4 forms covered">
554&nbsp;&nbsp;&nbsp;&nbsp;(swap!&nbsp;traced-symbols
</span><br/>
<span class="not-covered" title="0 out of 4 forms covered">
555&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#(cond
</span><br/>
<span class="not-covered" title="0 out of 7 forms covered">
556&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(symbol?&nbsp;s)&nbsp;(conj&nbsp;%&nbsp;s)
</span><br/>
<span class="not-covered" title="0 out of 17 forms covered">
557&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(and&nbsp;(seq?&nbsp;s)&nbsp;(every?&nbsp;symbol?&nbsp;s))&nbsp;(union&nbsp;%&nbsp;(set&nbsp;s))
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
558&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:else&nbsp;%)))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
559&nbsp;&nbsp;
</span><br/>
<span class="partial" title="1 out of 3 forms covered">
560&nbsp;&nbsp;(defn&nbsp;UNTRACE
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
561&nbsp;&nbsp;&nbsp;&nbsp;&quot;Remove&nbsp;this&nbsp;`s`&nbsp;from&nbsp;the&nbsp;set&nbsp;of&nbsp;symbols&nbsp;currently&nbsp;being&nbsp;traced.&nbsp;If&nbsp;`s`
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
562&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;not&nbsp;a&nbsp;symbol&nbsp;or&nbsp;sequence&nbsp;of&nbsp;symbols,&nbsp;does&nbsp;nothing.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
563&nbsp;&nbsp;&nbsp;&nbsp;[s]
</span><br/>
<span class="not-covered" title="0 out of 3 forms covered">
564&nbsp;&nbsp;&nbsp;&nbsp;(cond
</span><br/>
<span class="not-covered" title="0 out of 16 forms covered">
565&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(symbol?&nbsp;s)&nbsp;(swap!&nbsp;traced-symbols&nbsp;#(set&nbsp;(remove&nbsp;(fn&nbsp;[x]&nbsp;(=&nbsp;s&nbsp;x))&nbsp;%)))
</span><br/>
<span class="not-covered" title="0 out of 15 forms covered">
566&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(and&nbsp;(seq?&nbsp;s)&nbsp;(every?&nbsp;symbol?&nbsp;s))&nbsp;(map&nbsp;UNTRACE&nbsp;s))
</span><br/>
<span class="not-covered" title="0 out of 1 forms covered">
567&nbsp;&nbsp;&nbsp;&nbsp;@traced-symbols)
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
568&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
569&nbsp;&nbsp;;;;;&nbsp;Extensions&nbsp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
570&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
571&nbsp;&nbsp;(defn&nbsp;DOC
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
572&nbsp;&nbsp;&nbsp;&nbsp;&quot;Open&nbsp;the&nbsp;page&nbsp;for&nbsp;this&nbsp;`symbol`&nbsp;in&nbsp;the&nbsp;Lisp&nbsp;1.5&nbsp;manual,&nbsp;if&nbsp;known,&nbsp;in&nbsp;the&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
573&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default&nbsp;web&nbsp;browser.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
574&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
575&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**NOTE&nbsp;THAT**&nbsp;this&nbsp;is&nbsp;an&nbsp;extension&nbsp;function,&nbsp;not&nbsp;available&nbsp;in&nbsp;strct&nbsp;mode.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
576&nbsp;&nbsp;&nbsp;&nbsp;[symbol]
</span><br/>
<span class="not-covered" title="0 out of 5 forms covered">
577&nbsp;&nbsp;&nbsp;&nbsp;(when&nbsp;(lax?&nbsp;&#x27;DOC)
</span><br/>
<span class="not-covered" title="0 out of 3 forms covered">
578&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(open-doc&nbsp;symbol)))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
579&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
580&nbsp;&nbsp;(defn&nbsp;CONSP
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
581&nbsp;&nbsp;&nbsp;&nbsp;&quot;Return&nbsp;`T`&nbsp;if&nbsp;object&nbsp;`o`&nbsp;is&nbsp;a&nbsp;cons&nbsp;cell,&nbsp;else&nbsp;`F`.
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
582&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
583&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;**NOTE&nbsp;THAT**&nbsp;this&nbsp;is&nbsp;an&nbsp;extension&nbsp;function,&nbsp;not&nbsp;available&nbsp;in&nbsp;strct&nbsp;mode.&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
584&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I&nbsp;believe&nbsp;that&nbsp;Lisp&nbsp;1.5&nbsp;did&nbsp;not&nbsp;have&nbsp;any&nbsp;mechanism&nbsp;for&nbsp;testing&nbsp;whether&nbsp;an
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
585&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;argument&nbsp;was,&nbsp;or&nbsp;was&nbsp;not,&nbsp;a&nbsp;cons&nbsp;cell.&quot;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
586&nbsp;&nbsp;&nbsp;&nbsp;[o]
</span><br/>
<span class="covered" title="5 out of 5 forms covered">
587&nbsp;&nbsp;&nbsp;&nbsp;(when&nbsp;(lax?&nbsp;&#x27;CONSP)
</span><br/>
<span class="covered" title="7 out of 7 forms covered">
588&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(instance?&nbsp;ConsCell&nbsp;o)&nbsp;&#x27;T&nbsp;&#x27;F)))
</span><br/>
</body>
</html>