Update some of the docs.

This commit is contained in:
Simon Forman
2020-05-20 19:15:47 -07:00
parent 6a6b63bf62
commit ffabda0407
60 changed files with 5182 additions and 5853 deletions
+26 -26
View File
@@ -13088,7 +13088,7 @@ div#notebook {
<div class="prompt input_prompt">In&nbsp;[1]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="kn">from</span> <span class="nn">notebook_preamble</span> <span class="kn">import</span> <span class="n">D</span><span class="p">,</span> <span class="n">J</span><span class="p">,</span> <span class="n">V</span><span class="p">,</span> <span class="n">define</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">notebook_preamble</span> <span class="kn">import</span> <span class="n">D</span><span class="p">,</span> <span class="n">J</span><span class="p">,</span> <span class="n">V</span><span class="p">,</span> <span class="n">define</span>
</pre></div>
</div>
@@ -13101,7 +13101,7 @@ div#notebook {
<div class="prompt input_prompt">In&nbsp;[2]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[0 2 7 0] dup max&#39;</span><span class="p">)</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[0 2 7 0] dup max&#39;</span><span class="p">)</span>
</pre></div>
</div>
@@ -13132,7 +13132,7 @@ div#notebook {
<div class="prompt input_prompt">In&nbsp;[3]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="kn">from</span> <span class="nn">joy.library</span> <span class="kn">import</span> <span class="n">SimpleFunctionWrapper</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">joy.library</span> <span class="kn">import</span> <span class="n">SimpleFunctionWrapper</span>
<span class="kn">from</span> <span class="nn">joy.utils.stack</span> <span class="kn">import</span> <span class="n">list_to_stack</span>
@@ -13176,7 +13176,7 @@ div#notebook {
<div class="prompt input_prompt">In&nbsp;[4]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[0 2 7 0] 7 index_of&#39;</span><span class="p">)</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[0 2 7 0] 7 index_of&#39;</span><span class="p">)</span>
</pre></div>
</div>
@@ -13207,7 +13207,7 @@ div#notebook {
<div class="prompt input_prompt">In&nbsp;[5]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[0 2 7 0] 23 index_of&#39;</span><span class="p">)</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[0 2 7 0] 23 index_of&#39;</span><span class="p">)</span>
</pre></div>
</div>
@@ -13253,7 +13253,7 @@ div#notebook {
<div class="prompt input_prompt">In&nbsp;[6]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="kn">from</span> <span class="nn">joy.utils.stack</span> <span class="kn">import</span> <span class="n">iter_stack</span><span class="p">,</span> <span class="n">list_to_stack</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">joy.utils.stack</span> <span class="kn">import</span> <span class="n">iter_stack</span><span class="p">,</span> <span class="n">list_to_stack</span>
<span class="nd">@SimpleFunctionWrapper</span>
@@ -13292,7 +13292,7 @@ div#notebook {
<div class="prompt input_prompt">In&nbsp;[7]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[0 2 7 0] dup max [index_of] nullary distribute&#39;</span><span class="p">)</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[0 2 7 0] dup max [index_of] nullary distribute&#39;</span><span class="p">)</span>
</pre></div>
</div>
@@ -13323,7 +13323,7 @@ div#notebook {
<div class="prompt input_prompt">In&nbsp;[8]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[2 4 1 2] dup max [index_of] nullary distribute&#39;</span><span class="p">)</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[2 4 1 2] dup max [index_of] nullary distribute&#39;</span><span class="p">)</span>
</pre></div>
</div>
@@ -13354,7 +13354,7 @@ div#notebook {
<div class="prompt input_prompt">In&nbsp;[9]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[3 1 2 3] dup max [index_of] nullary distribute&#39;</span><span class="p">)</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[3 1 2 3] dup max [index_of] nullary distribute&#39;</span><span class="p">)</span>
</pre></div>
</div>
@@ -13385,7 +13385,7 @@ div#notebook {
<div class="prompt input_prompt">In&nbsp;[10]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[0 2 3 4] dup max [index_of] nullary distribute&#39;</span><span class="p">)</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[0 2 3 4] dup max [index_of] nullary distribute&#39;</span><span class="p">)</span>
</pre></div>
</div>
@@ -13416,7 +13416,7 @@ div#notebook {
<div class="prompt input_prompt">In&nbsp;[11]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[1 3 4 1] dup max [index_of] nullary distribute&#39;</span><span class="p">)</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[1 3 4 1] dup max [index_of] nullary distribute&#39;</span><span class="p">)</span>
</pre></div>
</div>
@@ -13469,7 +13469,7 @@ w/ G == dup max [index_of] nullary distribute</code></pre>
<div class="prompt input_prompt">In&nbsp;[12]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">&#39;direco == dip rest cons&#39;</span><span class="p">)</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">&#39;direco dip rest cons&#39;</span><span class="p">)</span>
</pre></div>
</div>
@@ -13482,7 +13482,7 @@ w/ G == dup max [index_of] nullary distribute</code></pre>
<div class="prompt input_prompt">In&nbsp;[13]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">&#39;G == [direco] cons [swap] swoncat cons&#39;</span><span class="p">)</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">&#39;G [direco] cons [swap] swoncat cons&#39;</span><span class="p">)</span>
</pre></div>
</div>
@@ -13495,7 +13495,7 @@ w/ G == dup max [index_of] nullary distribute</code></pre>
<div class="prompt input_prompt">In&nbsp;[14]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">&#39;make_distributor == [dup dup max [index_of] nullary distribute] G&#39;</span><span class="p">)</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">&#39;make_distributor [dup dup max [index_of] nullary distribute] G&#39;</span><span class="p">)</span>
</pre></div>
</div>
@@ -13508,7 +13508,7 @@ w/ G == dup max [index_of] nullary distribute</code></pre>
<div class="prompt input_prompt">In&nbsp;[15]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[0 2 7 0] make_distributor 6 [x] times pop&#39;</span><span class="p">)</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[0 2 7 0] make_distributor 6 [x] times pop&#39;</span><span class="p">)</span>
</pre></div>
</div>
@@ -13539,13 +13539,13 @@ w/ G == dup max [index_of] nullary distribute</code></pre>
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="A-function-to-drive-a-generator-and-count-how-many-states-before-a-repeat.">A function to drive a generator and count how many states before a repeat.<a class="anchor-link" href="#A-function-to-drive-a-generator-and-count-how-many-states-before-a-repeat.">&#182;</a></h3><p>First draft:</p>
<pre><code>[] [GEN] x [pop index_of 0 &gt;=] [pop size --] [[swons] dip x] primrec
<pre><code>[] [GEN] x [pop index_of 0 &gt;=] [pop size --] [[swons] dip x] tailrec
</code></pre>
<p>(?)</p>
<pre><code>[] [GEN] x [pop index_of 0 &gt;=] [pop size --] [[swons] dip x] primrec
[] [...] [GEN] [pop index_of 0 &gt;=] [pop size --] [[swons] dip x] primrec
<pre><code>[] [GEN] x [pop index_of 0 &gt;=] [pop size --] [[swons] dip x] tailrec
[] [...] [GEN] [pop index_of 0 &gt;=] [pop size --] [[swons] dip x] tailrec
[] [...] [GEN] pop index_of 0 &gt;=
[] [...] index_of 0 &gt;=
-1 0 &gt;=
@@ -13554,7 +13554,7 @@ w/ G == dup max [index_of] nullary distribute</code></pre>
</code></pre>
<p>Base case</p>
<pre><code>[] [...] [GEN] [pop index_of 0 &gt;=] [pop size --] [[swons] dip x] primrec
<pre><code>[] [...] [GEN] [pop index_of 0 &gt;=] [pop size --] [[swons] dip x] tailrec
[] [...] [GEN] pop size --
[] [...] size --
[] [...] size --
@@ -13569,7 +13569,7 @@ n
</code></pre>
<p>Recursive case</p>
<pre><code>[] [...] [GEN] [pop index_of 0 &gt;=] [popop size] [[swons] dip x] primrec
<pre><code>[] [...] [GEN] [pop index_of 0 &gt;=] [popop size] [[swons] dip x] tailrec
[] [...] [GEN] [swons] dip x F
[] [...] swons [GEN] x F
[[...]] [GEN] x F
@@ -13580,7 +13580,7 @@ n
</code></pre>
<p>What have we learned?</p>
<pre><code>F == [pop index_of 0 &gt;=] [popop size] [[swons] dip x] primrec</code></pre>
<pre><code>F == [pop index_of 0 &gt;=] [popop size] [[swons] dip x] tailrec</code></pre>
</div>
</div>
@@ -13590,7 +13590,7 @@ n
<div class="prompt input_prompt">In&nbsp;[16]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">&#39;count_states == [] swap x [pop index_of 0 &gt;=] [popop size] [[swons] dip x] primrec&#39;</span><span class="p">)</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">&#39;count_states [] swap x [pop index_of 0 &gt;=] [popop size] [[swons] dip x] tailrec&#39;</span><span class="p">)</span>
</pre></div>
</div>
@@ -13603,7 +13603,7 @@ n
<div class="prompt input_prompt">In&nbsp;[17]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">&#39;AoC2017.6 == make_distributor count_states&#39;</span><span class="p">)</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">define</span><span class="p">(</span><span class="s1">&#39;AoC2017.6 make_distributor count_states&#39;</span><span class="p">)</span>
</pre></div>
</div>
@@ -13616,7 +13616,7 @@ n
<div class="prompt input_prompt">In&nbsp;[18]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[0 2 7 0] AoC2017.6&#39;</span><span class="p">)</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[0 2 7 0] AoC2017.6&#39;</span><span class="p">)</span>
</pre></div>
</div>
@@ -13647,7 +13647,7 @@ n
<div class="prompt input_prompt">In&nbsp;[19]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[1 1 1] AoC2017.6&#39;</span><span class="p">)</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[1 1 1] AoC2017.6&#39;</span><span class="p">)</span>
</pre></div>
</div>
@@ -13678,7 +13678,7 @@ n
<div class="prompt input_prompt">In&nbsp;[20]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython2"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[8 0 0 0 0 0] AoC2017.6&#39;</span><span class="p">)</span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">J</span><span class="p">(</span><span class="s1">&#39;[8 0 0 0 0 0] AoC2017.6&#39;</span><span class="p">)</span>
</pre></div>
</div>