Lots of new unit tests.

This commit is contained in:
Simon Brooke 2023-04-11 15:18:52 +01:00
parent 01e4572119
commit 7c4d3668a8
26 changed files with 866 additions and 1128 deletions

View file

@ -130,19 +130,19 @@
<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">
<span class="covered" title="5 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">
<span class="covered" title="7 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">
<span class="covered" title="6 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">
<span class="covered" title="1 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">
@ -283,19 +283,19 @@
<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">
<span class="covered" title="13 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">
<span class="covered" title="4 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">
<span class="covered" title="8 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">
<span class="covered" title="3 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">
@ -310,19 +310,19 @@
<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">
<span class="covered" title="6 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">
<span class="covered" title="3 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">
<span class="covered" title="8 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">
<span class="covered" title="3 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">
@ -568,7 +568,7 @@
<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">
<span class="partial" title="12 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">
@ -580,7 +580,7 @@
<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">
<span class="covered" title="2 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">
@ -619,13 +619,13 @@
<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">
<span class="covered" title="3 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">
<span class="covered" title="9 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">
<span class="covered" title="10 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">
@ -634,19 +634,19 @@
<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">
<span class="covered" title="4 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">
<span class="covered" title="3 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">
<span class="covered" title="9 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">
<span class="covered" title="10 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">
@ -655,7 +655,7 @@
<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">
<span class="covered" title="4 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">
@ -682,7 +682,7 @@
<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">
<span class="covered" title="36 out of 36 forms covered">
227&nbsp;&nbsp;(defmacro&nbsp;NULL
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
@ -691,13 +691,13 @@
<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">
<span class="covered" title="1 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">
<span class="covered" title="36 out of 36 forms covered">
232&nbsp;&nbsp;(defmacro&nbsp;NILP
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
@ -706,7 +706,7 @@
<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">
<span class="covered" title="1 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">
@ -847,13 +847,13 @@
<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">
<span class="partial" title="6 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">
<span class="covered" title="1 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">
@ -889,13 +889,13 @@
<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">
<span class="partial" title="6 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">
<span class="covered" title="14 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">
<span class="covered" title="1 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">
@ -1078,7 +1078,7 @@
<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">
<span class="covered" title="7 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">
@ -1093,7 +1093,7 @@
<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">
<span class="covered" title="7 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">
@ -1153,7 +1153,7 @@
<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">
<span class="covered" title="2 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">
@ -1165,7 +1165,7 @@
<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">
<span class="covered" title="6 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">
@ -1189,7 +1189,7 @@
<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">
<span class="covered" title="6 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">
@ -1201,7 +1201,7 @@
<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">
<span class="covered" title="6 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">
@ -1237,7 +1237,7 @@
<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">
<span class="covered" title="14 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">
@ -1249,7 +1249,7 @@
<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">
<span class="covered" title="8 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">
@ -1334,7 +1334,7 @@
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)))
444&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(and&nbsp;(instance?&nbsp;ConsCell&nbsp;plist)&nbsp;(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
@ -1558,215 +1558,218 @@
<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 class="not-covered" title="0 out of 2 forms covered">
519&nbsp;&nbsp;&nbsp;&nbsp;(doall
</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 class="not-covered" title="0 out of 3 forms covered">
520&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(map
</span><br/>
<span class="not-covered" title="0 out of 14 forms covered">
521&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#(when&nbsp;(PUT&nbsp;(CAR&nbsp;%)&nbsp;indicator&nbsp;(CDR&nbsp;%))&nbsp;(CAR&nbsp;%))
</span><br/>
<span class="not-covered" title="0 out of 1 forms covered">
521&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a-list))
522&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a-list)))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
522&nbsp;&nbsp;
523&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
523&nbsp;&nbsp;(defn&nbsp;DEFINE
524&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;
525&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;
526&nbsp;&nbsp;&nbsp;&nbsp;in&nbsp;LISP.&nbsp;
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
526&nbsp;&nbsp;
527&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
528&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;
529&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]
530&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))
531&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;
532&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
532&nbsp;&nbsp;(defn&nbsp;SET
533&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
534&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;
535&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]
536&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))
537&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;
538&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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
539&nbsp;&nbsp;;;;;&nbsp;TRACE&nbsp;and&nbsp;friends&nbsp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
539&nbsp;&nbsp;
540&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
540&nbsp;&nbsp;(def&nbsp;traced-symbols
541&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;
542&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;#{}))
543&nbsp;&nbsp;&nbsp;&nbsp;(atom&nbsp;#{}))
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
543&nbsp;&nbsp;
544&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
544&nbsp;&nbsp;(defn&nbsp;traced?
545&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;
546&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]
547&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)
548&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)))
549&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;
550&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
550&nbsp;&nbsp;(defn&nbsp;TRACE
551&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`
552&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;
553&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]
554&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
555&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
556&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)
557&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))
558&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;%)))
559&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;
560&nbsp;&nbsp;
</span><br/>
<span class="partial" title="1 out of 3 forms covered">
560&nbsp;&nbsp;(defn&nbsp;UNTRACE
561&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`
562&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;
563&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]
564&nbsp;&nbsp;&nbsp;&nbsp;[s]
</span><br/>
<span class="not-covered" title="0 out of 3 forms covered">
564&nbsp;&nbsp;&nbsp;&nbsp;(cond
565&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;%)))
566&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))
567&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)
568&nbsp;&nbsp;&nbsp;&nbsp;@traced-symbols)
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
568&nbsp;&nbsp;
569&nbsp;&nbsp;
</span><br/>
<span class="not-tracked" title="0 out of 0 forms covered">
569&nbsp;&nbsp;;;;;&nbsp;Extensions&nbsp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
570&nbsp;&nbsp;;;;;&nbsp;Extensions&nbsp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
</span><br/>
<span class="blank" title="0 out of 0 forms covered">
570&nbsp;&nbsp;
571&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
571&nbsp;&nbsp;(defn&nbsp;DOC
572&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;
573&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.
574&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;
575&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;
576&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]
577&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)
578&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)))
579&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;
580&nbsp;&nbsp;
</span><br/>
<span class="covered" title="1 out of 1 forms covered">
580&nbsp;&nbsp;(defn&nbsp;CONSP
581&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`.
582&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;
583&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;
584&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
585&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;
586&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]
587&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)
588&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)))
589&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if&nbsp;(instance?&nbsp;ConsCell&nbsp;o)&nbsp;&#x27;T&nbsp;&#x27;F)))
</span><br/>
</body>
</html>

View file

@ -67,20 +67,20 @@
</tr>
<tr>
<td><a href="beowulf/host.clj.html">beowulf.host</a></td><td class="with-bar"><div class="covered"
style="width:46.61776691116545%;
float:left;"> 1144 </div><div class="not-covered"
style="width:53.38223308883455%;
float:left;"> 1310 </div></td>
<td class="with-number">46.62 %</td>
style="width:56.44047135310849%;
float:left;"> 1389 </div><div class="not-covered"
style="width:43.55952864689151%;
float:left;"> 1072 </div></td>
<td class="with-number">56.44 %</td>
<td class="with-bar"><div class="covered"
style="width:61.97718631178707%;
float:left;"> 163 </div><div class="partial"
style="width:14.068441064638783%;
float:left;"> 37 </div><div class="not-covered"
style="width:23.954372623574145%;
float:left;"> 63 </div></td>
<td class="with-number">76.05 %</td>
<td class="with-number">588</td><td class="with-number">67</td><td class="with-number">263</td>
style="width:75.37878787878788%;
float:left;"> 199 </div><div class="partial"
style="width:12.121212121212121%;
float:left;"> 32 </div><div class="not-covered"
style="width:12.5%;
float:left;"> 33 </div></td>
<td class="with-number">87.50 %</td>
<td class="with-number">589</td><td class="with-number">67</td><td class="with-number">264</td>
</tr>
<tr>
<td><a href="beowulf/interop.clj.html">beowulf.interop</a></td><td class="with-bar"><div class="covered"
@ -236,9 +236,9 @@
</tr>
<tr><td>Totals:</td>
<td class="with-bar"></td>
<td class="with-number">65.64 %</td>
<td class="with-number">68.60 %</td>
<td class="with-bar"></td>
<td class="with-number">75.70 %</td>
<td class="with-number">77.76 %</td>
</tr>
</table>
</body>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,17 +1,19 @@
<!DOCTYPE html PUBLIC ""
"">
<html><head><meta charset="UTF-8" /><title>Further Reading</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><link rel="icon" type="image/x-icon" href="../img/beowulf_logo_favicon.png" /></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Beowulf</span> <span class="project-version">0.3.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 current"><a href="further_reading.html"><div class="inner"><span>Further Reading</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>beowulf</span></div></a></li><li class="depth-1 "><a href="mexpr.html"><div class="inner"><span>Interpreting M-Expressions</span></div></a></li><li class="depth-1 "><a href="values.html"><div class="inner"><span>The properties of the system, and their values</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>beowulf</span></div></div></li><li class="depth-2 branch"><a href="beowulf.bootstrap.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bootstrap</span></div></a></li><li class="depth-2 branch"><a href="beowulf.cons-cell.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>cons-cell</span></div></a></li><li class="depth-2 branch"><a href="beowulf.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2 branch"><a href="beowulf.gendoc.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gendoc</span></div></a></li><li class="depth-2 branch"><a href="beowulf.host.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>host</span></div></a></li><li class="depth-2 branch"><a href="beowulf.interop.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>interop</span></div></a></li><li class="depth-2 branch"><a href="beowulf.io.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>io</span></div></a></li><li class="depth-2 branch"><a href="beowulf.manual.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>manual</span></div></a></li><li class="depth-2 branch"><a href="beowulf.oblist.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>oblist</span></div></a></li><li class="depth-2 branch"><a href="beowulf.read.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>read</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>reader</span></div></div></li><li class="depth-3 branch"><a href="beowulf.reader.char-reader.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>char-reader</span></div></a></li><li class="depth-3 branch"><a href="beowulf.reader.generate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>generate</span></div></a></li><li class="depth-3 branch"><a href="beowulf.reader.macros.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>macros</span></div></a></li><li class="depth-3 branch"><a href="beowulf.reader.parser.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>parser</span></div></a></li><li class="depth-3"><a href="beowulf.reader.simplify.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simplify</span></div></a></li><li class="depth-2"><a href="beowulf.scratch.html"><div class="inner"><span class="tree" style="top: -176px;"><span class="top" style="height: 185px;"></span><span class="bottom"></span></span><span>scratch</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#further-reading" name="further-reading"></a>Further Reading</h1>
<html><head><meta charset="UTF-8" /><title>Further Reading</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><link rel="icon" type="image/x-icon" href="../img/beowulf_logo_favicon.png" /></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">Beowulf</span> <span class="project-version">0.3.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 current"><a href="further_reading.html"><div class="inner"><span>Further Reading</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>beowulf</span></div></a></li><li class="depth-1 "><a href="mexpr.html"><div class="inner"><span>Interpreting M-Expressions</span></div></a></li><li class="depth-1 "><a href="values.html"><div class="inner"><span>The properties of the system, and their values</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>beowulf</span></div></div></li><li class="depth-2 branch"><a href="beowulf.bootstrap.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>bootstrap</span></div></a></li><li class="depth-2 branch"><a href="beowulf.cons-cell.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>cons-cell</span></div></a></li><li class="depth-2 branch"><a href="beowulf.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2 branch"><a href="beowulf.gendoc.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gendoc</span></div></a></li><li class="depth-2 branch"><a href="beowulf.host.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>host</span></div></a></li><li class="depth-2 branch"><a href="beowulf.interop.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>interop</span></div></a></li><li class="depth-2 branch"><a href="beowulf.io.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>io</span></div></a></li><li class="depth-2 branch"><a href="beowulf.manual.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>manual</span></div></a></li><li class="depth-2 branch"><a href="beowulf.oblist.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>oblist</span></div></a></li><li class="depth-2 branch"><a href="beowulf.read.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>read</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>reader</span></div></div></li><li class="depth-3 branch"><a href="beowulf.reader.char-reader.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>char-reader</span></div></a></li><li class="depth-3 branch"><a href="beowulf.reader.generate.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>generate</span></div></a></li><li class="depth-3 branch"><a href="beowulf.reader.macros.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>macros</span></div></a></li><li class="depth-3 branch"><a href="beowulf.reader.parser.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>parser</span></div></a></li><li class="depth-3"><a href="beowulf.reader.simplify.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simplify</span></div></a></li><li class="depth-2"><a href="beowulf.scratch.html"><div class="inner"><span class="tree" style="top: -176px;"><span class="top" style="height: 185px;"></span><span class="bottom"></span></span><span>scratch</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#further-reading" id="further-reading"></a>Further Reading</h1>
<ol>
<li><a href="http://bitsavers.org/pdf/mit/computer_center/Coding_for_the_MIT-IBM_704_Computer_Oct57.pdf">CODING for the MIT-IBM 704 COMPUTER, October 1957</a> This paper is not about Lisp. But it is about the particular individual computer on which Lisp was first implemented, and it is written in part by members of the Lisp team. I have found it useful in understanding the software environment in which, and the constraints under which, Lisp was written.</li>
<li><a href="https://www.softwarepreservation.org/projects/LISP/MIT/AIM-001.pdf">MIT AI Memo 1, John McCarthy, September 1958</a> This is, as far as I can find, the earliest specification document of the Lisp project.</li>
<li><a href="https://bitsavers.org/pdf/mit/rle_lisp/LISP_I_Programmers_Manual_Mar60.pdf">Lisp 1 Programmers Manual, Phyllis Fox, March 1960</a></li>
<li><a href="https://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf#page=81">Lisp 1.5 Programmers Manual, Michael I. Levin, August 1962</a> This book is essential reading: it documents in some detail the first fully realised Lisp language system.</li>
<li><a href="https://dl.acm.org/doi/pdf/10.1145/800055.802047#page=3">Early LISP History (1956 - 1959), Herbert Stoyan, August 1984</a></li>
<li>
<p><a href="http://www.paulgraham.com/rootsoflisp.html">The Roots of Lisp, Paul Graham, 2001</a></p></li>
<li>
<p><a href="http://www.paulgraham.com/icad.html">The Revenge of the Nerds, Paul Graham, 2002</a> This is mainly about why to use Lisp as a language for modern commercial software, but has useful insights into where it comes from.</p>
<blockquote>
<p>So the short explanation of why this 1950s language is not obsolete is that it was not technology but math, and math doesnt get stale.</p>
</blockquote></li>
</ol></div></div></div></body></html>
<li><a href="http://bitsavers.org/pdf/mit/computer_center/Coding_for_the_MIT-IBM_704_Computer_Oct57.pdf">CODING for the MIT-IBM 704 COMPUTER, October 1957</a> This paper is not about Lisp. But it is about the particular individual computer on which Lisp was first implemented, and it is written in part by members of the Lisp team. I have found it useful in understanding the software environment in which, and the constraints under which, Lisp was written.</li>
<li><a href="https://www.softwarepreservation.org/projects/LISP/MIT/AIM-001.pdf">MIT AI Memo 1, John McCarthy, September 1958</a> This is, as far as I can find, the earliest specification document of the Lisp project.</li>
<li><a href="https://bitsavers.org/pdf/mit/rle_lisp/LISP_I_Programmers_Manual_Mar60.pdf">Lisp 1 Programmers Manual, Phyllis Fox, March 1960</a></li>
<li><a href="https://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf#page=81">Lisp 1.5 Programmers Manual, Michael I. Levin, August 1962</a> This book is essential reading: it documents in some detail the first fully realised Lisp language system.</li>
<li><a href="https://dl.acm.org/doi/pdf/10.1145/800055.802047#page=3">Early LISP History (1956 - 1959), Herbert Stoyan, August 1984</a></li>
<li>
<p><a href="http://www.paulgraham.com/rootsoflisp.html">The Roots of Lisp, Paul Graham, 2001</a></p>
</li>
<li><a href="http://www.paulgraham.com/icad.html">The Revenge of the Nerds, Paul Graham, 2002</a> This is mainly about why to use Lisp as a language for modern commercial software, but has useful insights into where it comes from.
<blockquote>
<p>So the short explanation of why this 1950s language is not obsolete is that it was not technology but math, and math doesnt get stale.</p>
</blockquote>
</li>
</ol>
</div></div></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long