Skip to content

Commit 09a44f1

Browse files
author
Quarto GHA Workflow Runner
committed
Built site for gh-pages
1 parent ad60def commit 09a44f1

File tree

9 files changed

+976
-976
lines changed

9 files changed

+976
-976
lines changed

.nojekyll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
bf002720
1+
d7becbd5

clojure/print_object/remove_extraneous.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
88

99
<meta name="author" content="Timothy Pratley">
10-
<meta name="dcterms.date" content="2025-06-05">
10+
<meta name="dcterms.date" content="2025-05-26">
1111

1212
<title>Clean object printing by removing extraneous – Clojure Civitas</title>
1313
<style>
@@ -371,7 +371,7 @@ <h1 class="title">Clean object printing by removing extraneous</h1>
371371
<div>
372372
<div class="quarto-title-meta-heading">Published</div>
373373
<div class="quarto-title-meta-contents">
374-
<p class="date">June 5, 2025</p>
374+
<p class="date">May 26, 2025</p>
375375
</div>
376376
</div>
377377

@@ -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">0x4ad1ca85</span> <span class="st">"clojure.lang.MultiFn@4ad1ca85"</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">0x3c1a6d8c</span> <span class="st">"clojure.lang.MultiFn@3c1a6d8c"</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">0x77092597</span> <span class="st">"java.lang.Object@77092597"</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">0x1e98ee48</span> <span class="st">"java.lang.Object@1e98ee48"</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">0x3c556542</span> <span class="st">"clojure.core.async.impl.channels.ManyToManyChannel@3c556542"</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">0x4a6ed38</span> <span class="st">"clojure.core.async.impl.channels.ManyToManyChannel@4a6ed38"</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$eval22436$fn__22437 <span class="bn">0x7eecccfb</span> <span class="st">"clojure.print_object.remove_extraneous$eval22436$fn__22437@7eecccfb"</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$eval22436$fn__22437 <span class="bn">0x3e871f3</span> <span class="st">"clojure.print_object.remove_extraneous$eval22436$fn__22437@3e871f3"</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$eval22440$fn__22441$fn__22442 <span class="bn">0x3381297e</span> <span class="st">"clojure.print_object.remove_extraneous$eval22440$fn__22441$fn__22442@3381297e"</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$eval22440$fn__22441$fn__22442 <span class="bn">0x18faa963</span> <span class="st">"clojure.print_object.remove_extraneous$eval22440$fn__22441$fn__22442@18faa963"</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">

clojure/transducers/what_if.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -519,7 +519,7 @@ <h1 class="title">What if… we were taught transducers first?</h1>
519519
<div class="sourceCode" id="cb35"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb35-1"><a href="#cb35-1" aria-hidden="true" tabindex="-1"></a>(<span class="kw">comp</span> (<span class="kw">filter</span> <span class="kw">even?</span>) (<span class="kw">map</span> <span class="kw">inc</span>))</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
520520
</div>
521521
<div class="printedClojure">
522-
<div class="sourceCode" id="cb36"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb36-1"><a href="#cb36-1" aria-hidden="true" tabindex="-1"></a>#object[clojure.core$comp$fn__5895 <span class="bn">0x5c991516</span> <span class="st">"clojure.core$comp$fn__5895@5c991516"</span>]</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
522+
<div class="sourceCode" id="cb36"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb36-1"><a href="#cb36-1" aria-hidden="true" tabindex="-1"></a>#object[clojure.core$comp$fn__5895 <span class="bn">0x7a01358f</span> <span class="st">"clojure.core$comp$fn__5895@7a01358f"</span>]</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
523523
</div>
524524
<p>Let’s give this a name:</p>
525525
<div class="sourceClojure">

listings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@
99
{
1010
"listing": "/posts.html",
1111
"items": [
12-
"/clojure/print_object/remove_extraneous.html",
1312
"/clojure/transducers/what_if.html",
1413
"/conferences/scinoj_light_1/notes/hallway_track.html",
1514
"/math/primes/factorization/sieve_augmented.html",
15+
"/clojure/print_object/remove_extraneous.html",
1616
"/code_interview/beating/with_stupid_stuff/z_combinator_gambit.html",
1717
"/scicloj/noj/intro/getting-started-noj.html"
1818
]

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="1748931383147" 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="1748969425350" 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>
@@ -431,7 +431,7 @@ <h3 class="no-anchor listing-title">
431431
</a>
432432
</div>
433433
</div>
434-
<div class="quarto-post image-right" data-index="1" data-listing-file-modified-sort="1748931376036" data-listing-reading-time-sort="1" data-listing-word-count-sort="88">
434+
<div class="quarto-post image-right" data-index="1" data-listing-file-modified-sort="1748969418408" data-listing-reading-time-sort="1" data-listing-word-count-sort="88">
435435
<div class="thumbnail"><a href="./civitas/authors.html" class="no-external">
436436

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

posts.html

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -417,32 +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="1748931373892" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="4" data-listing-word-count-sort="696">
421-
<div class="thumbnail"><a href="./clojure/print_object/remove_extraneous.html" class="no-external">
422-
423-
<p class="card-img-top"><img src="clojure/print_object/objection.jpg" class="thumbnail-image card-img"/></p>
424-
425-
</a></div>
426-
<div class="body">
427-
<h3 class="no-anchor listing-title">
428-
<a href="./clojure/print_object/remove_extraneous.html" class="no-external">Clean object printing by removing extraneous</a>
429-
</h3>
430-
<div class="delink listing-description"><a href="./clojure/print_object/remove_extraneous.html" class="no-external">
431-
The Clojure default for printing objects is noisy. Clojure’s <code>print-method</code> for <code>Object</code> delegates to <code>clojure.core/print-object</code>
432-
</a></div>
433-
</div>
434-
<div class="metadata">
435-
<a href="./clojure/print_object/remove_extraneous.html" class="no-external">
436-
<div class="listing-date">
437-
Jun 5, 2025
438-
</div>
439-
<div class="listing-author">
440-
Timothy Pratley
441-
</div>
442-
</a>
443-
</div>
444-
</div>
445-
<div class="quarto-post image-right" data-index="1" data-listing-date-sort="1748649600000" data-listing-file-modified-sort="1748931371376" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="5" data-listing-word-count-sort="822">
420+
<div class="quarto-post image-right" data-index="0" data-listing-date-sort="1748649600000" data-listing-file-modified-sort="1748969413100" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="5" data-listing-word-count-sort="822">
446421
<div class="thumbnail"><a href="./clojure/transducers/what_if.html" class="no-external">
447422

448423
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@@ -467,7 +442,7 @@ <h3 class="no-anchor listing-title">
467442
</a>
468443
</div>
469444
</div>
470-
<div class="quarto-post image-right" data-index="2" data-listing-date-sort="1748390400000" data-listing-file-modified-sort="1748931355074" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="12" data-listing-word-count-sort="2276">
445+
<div class="quarto-post image-right" data-index="1" data-listing-date-sort="1748390400000" data-listing-file-modified-sort="1748969390913" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="12" data-listing-word-count-sort="2276">
471446
<div class="thumbnail"><a href="./conferences/scinoj_light_1/notes/hallway_track.html" class="no-external">
472447

473448
<img loading="lazy" src="./conferences/scinoj_light_1/notes/noj_components.png" class="thumbnail-image">
@@ -492,7 +467,7 @@ <h3 class="no-anchor listing-title">
492467
</a>
493468
</div>
494469
</div>
495-
<div class="quarto-post image-right" data-index="3" data-listing-date-sort="1748390400000" data-listing-file-modified-sort="1748931384973" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="2" data-listing-word-count-sort="345">
470+
<div class="quarto-post image-right" data-index="2" data-listing-date-sort="1748390400000" data-listing-file-modified-sort="1748969427074" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="2" data-listing-word-count-sort="345">
496471
<div class="thumbnail"><a href="./math/primes/factorization/sieve_augmented.html" class="no-external">
497472

498473
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@@ -517,7 +492,32 @@ <h3 class="no-anchor listing-title">
517492
</a>
518493
</div>
519494
</div>
520-
<div class="quarto-post image-right" data-index="4" data-listing-date-sort="1748131200000" data-listing-file-modified-sort="1748931385041" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="9" data-listing-word-count-sort="1672">
495+
<div class="quarto-post image-right" data-index="3" data-listing-date-sort="1748217600000" data-listing-file-modified-sort="1748969415784" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="4" data-listing-word-count-sort="696">
496+
<div class="thumbnail"><a href="./clojure/print_object/remove_extraneous.html" class="no-external">
497+
498+
<p class="card-img-top"><img src="clojure/print_object/objection.jpg" class="thumbnail-image card-img"/></p>
499+
500+
</a></div>
501+
<div class="body">
502+
<h3 class="no-anchor listing-title">
503+
<a href="./clojure/print_object/remove_extraneous.html" class="no-external">Clean object printing by removing extraneous</a>
504+
</h3>
505+
<div class="delink listing-description"><a href="./clojure/print_object/remove_extraneous.html" class="no-external">
506+
The Clojure default for printing objects is noisy. Clojure’s <code>print-method</code> for <code>Object</code> delegates to <code>clojure.core/print-object</code>
507+
</a></div>
508+
</div>
509+
<div class="metadata">
510+
<a href="./clojure/print_object/remove_extraneous.html" class="no-external">
511+
<div class="listing-date">
512+
May 26, 2025
513+
</div>
514+
<div class="listing-author">
515+
Timothy Pratley
516+
</div>
517+
</a>
518+
</div>
519+
</div>
520+
<div class="quarto-post image-right" data-index="4" data-listing-date-sort="1748131200000" data-listing-file-modified-sort="1748969427147" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="9" data-listing-word-count-sort="1672">
521521
<div class="thumbnail"><a href="./code_interview/beating/with_stupid_stuff/z_combinator_gambit.html" class="no-external">
522522

523523
<img loading="lazy" src="./code_interview/beating/with_stupid_stuff/z-combinator.jpg" class="thumbnail-image">
@@ -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="1746489600000" data-listing-file-modified-sort="1748931355078" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="2" data-listing-word-count-sort="255">
545+
<div class="quarto-post image-right" data-index="5" data-listing-date-sort="1746489600000" data-listing-file-modified-sort="1748969390917" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="2" data-listing-word-count-sort="255">
546546
<div class="thumbnail"><a href="./scicloj/noj/intro/getting-started-noj.html" class="no-external">
547547

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

0 commit comments

Comments
 (0)