Skip to content

Commit 13aaa79

Browse files
author
Quarto GHA Workflow Runner
committed
Built site for gh-pages
1 parent 8f6a9c6 commit 13aaa79

7 files changed

Lines changed: 39 additions & 39 deletions

File tree

.nojekyll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
6566cbcb
1+
71b0930a

clojure/print_object/remove_extraneous.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -401,20 +401,20 @@ <h1 class="title">Clean object printing by removing extraneous</h1>
401401
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a> (<span class="va">#'clojure.core/print-object</span> x w))</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
402402
</div>
403403
<div class="printedClojure">
404-
<div class="sourceCode" id="cb2"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a>#object[clojure.lang.MultiFn <span class="bn">0x628f8ac1</span> <span class="st">"clojure.lang.MultiFn@628f8ac1"</span>]</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
404+
<div class="sourceCode" id="cb2"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a>#object[clojure.lang.MultiFn <span class="bn">0x4608876e</span> <span class="st">"clojure.lang.MultiFn@4608876e"</span>]</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
405405
</div>
406406
<div class="sourceClojure">
407407
<div class="sourceCode" id="cb3"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a>(Object.)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
408408
</div>
409409
<div class="printedClojure">
410-
<div class="sourceCode" id="cb4"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a>#object[java.lang.Object <span class="bn">0x40d8e4f6</span> <span class="st">"java.lang.Object@40d8e4f6"</span>]</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
410+
<div class="sourceCode" id="cb4"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a>#object[java.lang.Object <span class="bn">0x7967b127</span> <span class="st">"java.lang.Object@7967b127"</span>]</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
411411
</div>
412412
<p>The syntax is <code>#object[CLASS-NAME HASH toString())]</code> and as you can see, the toString of an Object is <code>CLASS-NAME@HASH</code>. For most objects this becomes quite a long string.</p>
413413
<div class="sourceClojure">
414414
<div class="sourceCode" id="cb5"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a>(async/chan)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
415415
</div>
416416
<div class="printedClojure">
417-
<div class="sourceCode" id="cb6"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a>#object[clojure.core.async.impl.channels.ManyToManyChannel <span class="bn">0x37347be1</span> <span class="st">"clojure.core.async.impl.channels.ManyToManyChannel@37347be1"</span>]</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
417+
<div class="sourceCode" id="cb6"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a>#object[clojure.core.async.impl.channels.ManyToManyChannel <span class="bn">0x48fe904f</span> <span class="st">"clojure.core.async.impl.channels.ManyToManyChannel@48fe904f"</span>]</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
418418
</div>
419419
<div class="quarto-figure quarto-figure-center">
420420
<figure class="figure">
@@ -427,14 +427,14 @@ <h1 class="title">Clean object printing by removing extraneous</h1>
427427
<div class="sourceCode" id="cb7"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a>(<span class="kw">fn</span> [x] x)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
428428
</div>
429429
<div class="printedClojure">
430-
<div class="sourceCode" id="cb8"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a>#object[clojure.print_object.remove_extraneous$eval22473$fn__22474 <span class="bn">0x7c8c5798</span> <span class="st">"clojure.print_object.remove_extraneous$eval22473$fn__22474@7c8c5798"</span>]</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
430+
<div class="sourceCode" id="cb8"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a>#object[clojure.print_object.remove_extraneous$eval22473$fn__22474 <span class="bn">0x183c30f1</span> <span class="st">"clojure.print_object.remove_extraneous$eval22473$fn__22474@183c30f1"</span>]</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
431431
</div>
432432
<p>It’s quite easy to miss the fact that it is a function as we are looking for a tiny little <code>fn</code> in a sea of text. If, like me, you are fond of the <a href="../../code_interview/beating/with_stupid_stuff/z_combinator_gambit.html">odd lambda calculus excursion</a>, things get even more hectic.</p>
433433
<div class="sourceClojure">
434434
<div class="sourceCode" id="cb9"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a>((<span class="kw">fn</span> [x] (<span class="kw">fn</span> [v] ((x x) v))) (<span class="kw">fn</span> [y] y))</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
435435
</div>
436436
<div class="printedClojure">
437-
<div class="sourceCode" id="cb10"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a>#object[clojure.print_object.remove_extraneous$eval22477$fn__22478$fn__22479 <span class="bn">0x56ac955c</span> <span class="st">"clojure.print_object.remove_extraneous$eval22477$fn__22478$fn__22479@56ac955c"</span>]</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
437+
<div class="sourceCode" id="cb10"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a>#object[clojure.print_object.remove_extraneous$eval22477$fn__22478$fn__22479 <span class="bn">0x371c40ee</span> <span class="st">"clojure.print_object.remove_extraneous$eval22477$fn__22478$fn__22479@371c40ee"</span>]</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
438438
</div>
439439
<p>Yikes! what an eyesore. This is not an academic issue specific to lambda calculus. Any function created from inside a function is helpfully identifiable through the <code>fn$fn</code> nesting. We create these quite regularly, and they are often printed in stack traces. I’m sure you have seen them when you map an inline function across a seq, and there is a bug in the anonymous function.</p>
440440
<div class="sourceClojure">

pages.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,7 @@ <h1 class="title">Pages</h1>
409409
</div>
410410
</div>
411411
<div class="list quarto-listing-default">
412-
<div class="quarto-post image-right" data-index="0" data-listing-file-modified-sort="1749269831504" data-listing-reading-time-sort="3" data-listing-word-count-sort="590">
412+
<div class="quarto-post image-right" data-index="0" data-listing-file-modified-sort="1749401152093" data-listing-reading-time-sort="3" data-listing-word-count-sort="590">
413413
<div class="thumbnail"><a href="./civitas/explorer.html" class="no-external">
414414

415415
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@@ -428,7 +428,7 @@ <h3 class="no-anchor listing-title">
428428
</a>
429429
</div>
430430
</div>
431-
<div class="quarto-post image-right" data-index="1" data-listing-file-modified-sort="1749269831331" data-listing-reading-time-sort="1" data-listing-word-count-sort="95">
431+
<div class="quarto-post image-right" data-index="1" data-listing-file-modified-sort="1749401151919" data-listing-reading-time-sort="1" data-listing-word-count-sort="95">
432432
<div class="thumbnail"><a href="./civitas/authors.html" class="no-external">
433433

434434
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>

posts.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -417,7 +417,7 @@ <h1 class="title">Posts</h1>
417417
</div>
418418
</div>
419419
<div class="list quarto-listing-default">
420-
<div class="quarto-post image-right" data-index="0" data-listing-date-sort="1749081600000" data-listing-file-modified-sort="1749269832667" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="7" data-listing-word-count-sort="1201">
420+
<div class="quarto-post image-right" data-index="0" data-listing-date-sort="1749081600000" data-listing-file-modified-sort="1749401152883" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="7" data-listing-word-count-sort="1201">
421421
<div class="thumbnail"><a href="./math/stats/quantquestions/what_are_the_odds/the_hidden_geometry_of_dice.html" class="no-external">
422422

423423
<p class="card-img-top"><img src="math/stats/quantquestions/what_are_the_odds/the_hidden_geometry_of_dice.jpg" class="thumbnail-image card-img"/></p>
@@ -442,7 +442,7 @@ <h3 class="no-anchor listing-title">
442442
</a>
443443
</div>
444444
</div>
445-
<div class="quarto-post image-right" data-index="1" data-listing-date-sort="1748649600000" data-listing-file-modified-sort="1749269813901" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="6" data-listing-word-count-sort="1001">
445+
<div class="quarto-post image-right" data-index="1" data-listing-date-sort="1748649600000" data-listing-file-modified-sort="1749401133656" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="6" data-listing-word-count-sort="1001">
446446
<div class="thumbnail"><a href="./clojure/transducers/what_if.html" class="no-external">
447447

448448
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@@ -467,7 +467,7 @@ <h3 class="no-anchor listing-title">
467467
</a>
468468
</div>
469469
</div>
470-
<div class="quarto-post image-right" data-index="2" data-listing-date-sort="1748390400000" data-listing-file-modified-sort="1749269796258" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="12" data-listing-word-count-sort="2276">
470+
<div class="quarto-post image-right" data-index="2" data-listing-date-sort="1748390400000" data-listing-file-modified-sort="1749401114778" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="12" data-listing-word-count-sort="2276">
471471
<div class="thumbnail"><a href="./conferences/scinoj_light_1/notes/hallway_track.html" class="no-external">
472472

473473
<img loading="lazy" src="./conferences/scinoj_light_1/notes/noj_components.png" class="thumbnail-image">
@@ -492,7 +492,7 @@ <h3 class="no-anchor listing-title">
492492
</a>
493493
</div>
494494
</div>
495-
<div class="quarto-post image-right" data-index="3" data-listing-date-sort="1748390400000" data-listing-file-modified-sort="1749269832600" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="2" data-listing-word-count-sort="345">
495+
<div class="quarto-post image-right" data-index="3" data-listing-date-sort="1748390400000" data-listing-file-modified-sort="1749401152809" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="2" data-listing-word-count-sort="345">
496496
<div class="thumbnail"><a href="./math/primes/factorization/sieve_augmented.html" class="no-external">
497497

498498
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@@ -517,7 +517,7 @@ <h3 class="no-anchor listing-title">
517517
</a>
518518
</div>
519519
</div>
520-
<div class="quarto-post image-right" data-index="4" data-listing-date-sort="1748217600000" data-listing-file-modified-sort="1749269816281" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="4" data-listing-word-count-sort="696">
520+
<div class="quarto-post image-right" data-index="4" data-listing-date-sort="1748217600000" data-listing-file-modified-sort="1749401136202" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="4" data-listing-word-count-sort="696">
521521
<div class="thumbnail"><a href="./clojure/print_object/remove_extraneous.html" class="no-external">
522522

523523
<p class="card-img-top"><img src="clojure/print_object/objection.jpg" class="thumbnail-image card-img"/></p>
@@ -542,7 +542,7 @@ <h3 class="no-anchor listing-title">
542542
</a>
543543
</div>
544544
</div>
545-
<div class="quarto-post image-right" data-index="5" data-listing-date-sort="1748131200000" data-listing-file-modified-sort="1749269832726" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="9" data-listing-word-count-sort="1672">
545+
<div class="quarto-post image-right" data-index="5" data-listing-date-sort="1748131200000" data-listing-file-modified-sort="1749401152946" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="9" data-listing-word-count-sort="1672">
546546
<div class="thumbnail"><a href="./code_interview/beating/with_stupid_stuff/z_combinator_gambit.html" class="no-external">
547547

548548
<img loading="lazy" src="./code_interview/beating/with_stupid_stuff/z-combinator.jpg" class="thumbnail-image">
@@ -567,7 +567,7 @@ <h3 class="no-anchor listing-title">
567567
</a>
568568
</div>
569569
</div>
570-
<div class="quarto-post image-right" data-index="6" data-listing-date-sort="1746489600000" data-listing-file-modified-sort="1749269796263" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="2" data-listing-word-count-sort="255">
570+
<div class="quarto-post image-right" data-index="6" data-listing-date-sort="1746489600000" data-listing-file-modified-sort="1749401114784" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="2" data-listing-word-count-sort="255">
571571
<div class="thumbnail"><a href="./scicloj/noj/intro/getting-started-noj.html" class="no-external">
572572

573573
<p class="card-img-top"><img src="scicloj/noj/intro/Noj-icon.svg" class="thumbnail-image card-img"/></p>

posts.xml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1633,19 +1633,19 @@ font-style: inherit;">#'clojure.core/print-object</span> x w))</span></code></pr
16331633
<div class="printedClojure">
16341634
<div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb2-1">#object[clojure.lang.MultiFn <span class="bn" style="color: #AD0000;
16351635
background-color: null;
1636-
font-style: inherit;">0x628f8ac1</span> <span class="st" style="color: #20794D;
1636+
font-style: inherit;">0x4608876e</span> <span class="st" style="color: #20794D;
16371637
background-color: null;
1638-
font-style: inherit;">"clojure.lang.MultiFn@628f8ac1"</span>]</span></code></pre></div>
1638+
font-style: inherit;">"clojure.lang.MultiFn@4608876e"</span>]</span></code></pre></div>
16391639
</div>
16401640
<div class="sourceClojure">
16411641
<div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb3-1">(Object.)</span></code></pre></div>
16421642
</div>
16431643
<div class="printedClojure">
16441644
<div class="sourceCode" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb4-1">#object[java.lang.Object <span class="bn" style="color: #AD0000;
16451645
background-color: null;
1646-
font-style: inherit;">0x40d8e4f6</span> <span class="st" style="color: #20794D;
1646+
font-style: inherit;">0x7967b127</span> <span class="st" style="color: #20794D;
16471647
background-color: null;
1648-
font-style: inherit;">"java.lang.Object@40d8e4f6"</span>]</span></code></pre></div>
1648+
font-style: inherit;">"java.lang.Object@7967b127"</span>]</span></code></pre></div>
16491649
</div>
16501650
<p>The syntax is <code>#object[CLASS-NAME HASH toString())]</code> and as you can see, the toString of an Object is <code>CLASS-NAME@HASH</code>. For most objects this becomes quite a long string.</p>
16511651
<div class="sourceClojure">
@@ -1654,9 +1654,9 @@ font-style: inherit;">"java.lang.Object@40d8e4f6"</span>]</span></code></pre></d
16541654
<div class="printedClojure">
16551655
<div class="sourceCode" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb6-1">#object[clojure.core.async.impl.channels.ManyToManyChannel <span class="bn" style="color: #AD0000;
16561656
background-color: null;
1657-
font-style: inherit;">0x37347be1</span> <span class="st" style="color: #20794D;
1657+
font-style: inherit;">0x48fe904f</span> <span class="st" style="color: #20794D;
16581658
background-color: null;
1659-
font-style: inherit;">"clojure.core.async.impl.channels.ManyToManyChannel@37347be1"</span>]</span></code></pre></div>
1659+
font-style: inherit;">"clojure.core.async.impl.channels.ManyToManyChannel@48fe904f"</span>]</span></code></pre></div>
16601660
</div>
16611661
<div class="quarto-figure quarto-figure-center">
16621662
<figure class="figure">
@@ -1674,9 +1674,9 @@ font-style: inherit;">fn</span> [x] x)</span></code></pre></div>
16741674
<div class="printedClojure">
16751675
<div class="sourceCode" id="cb8" style="background: #f1f3f5;"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb8-1">#object[clojure.print_object.remove_extraneous$eval22473$fn__22474 <span class="bn" style="color: #AD0000;
16761676
background-color: null;
1677-
font-style: inherit;">0x7c8c5798</span> <span class="st" style="color: #20794D;
1677+
font-style: inherit;">0x183c30f1</span> <span class="st" style="color: #20794D;
16781678
background-color: null;
1679-
font-style: inherit;">"clojure.print_object.remove_extraneous$eval22473$fn__22474@7c8c5798"</span>]</span></code></pre></div>
1679+
font-style: inherit;">"clojure.print_object.remove_extraneous$eval22473$fn__22474@183c30f1"</span>]</span></code></pre></div>
16801680
</div>
16811681
<p>It’s quite easy to miss the fact that it is a function as we are looking for a tiny little <code>fn</code> in a sea of text. If, like me, you are fond of the <a href="../../code_interview/beating/with_stupid_stuff/z_combinator_gambit.html">odd lambda calculus excursion</a>, things get even more hectic.</p>
16821682
<div class="sourceClojure">
@@ -1694,9 +1694,9 @@ font-style: inherit;">fn</span> [y] y))</span></code></pre></div>
16941694
<div class="printedClojure">
16951695
<div class="sourceCode" id="cb10" style="background: #f1f3f5;"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb10-1">#object[clojure.print_object.remove_extraneous$eval22477$fn__22478$fn__22479 <span class="bn" style="color: #AD0000;
16961696
background-color: null;
1697-
font-style: inherit;">0x56ac955c</span> <span class="st" style="color: #20794D;
1697+
font-style: inherit;">0x371c40ee</span> <span class="st" style="color: #20794D;
16981698
background-color: null;
1699-
font-style: inherit;">"clojure.print_object.remove_extraneous$eval22477$fn__22478$fn__22479@56ac955c"</span>]</span></code></pre></div>
1699+
font-style: inherit;">"clojure.print_object.remove_extraneous$eval22477$fn__22478$fn__22479@371c40ee"</span>]</span></code></pre></div>
17001700
</div>
17011701
<p>Yikes! what an eyesore. This is not an academic issue specific to lambda calculus. Any function created from inside a function is helpfully identifiable through the <code>fn$fn</code> nesting. We create these quite regularly, and they are often printed in stack traces. I’m sure you have seen them when you map an inline function across a seq, and there is a bug in the anonymous function.</p>
17021702
<div class="sourceClojure">

0 commit comments

Comments
 (0)