Skip to content

Commit 79e52c0

Browse files
author
Quarto GHA Workflow Runner
committed
Built site for gh-pages
1 parent c9979e1 commit 79e52c0

9 files changed

Lines changed: 542 additions & 63 deletions

File tree

.nojekyll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
7ee62225
1+
d15bd02e

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">0x3eb022c2</span> <span class="st">"clojure.lang.MultiFn@3eb022c2"</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">0x45456cd1</span> <span class="st">"clojure.lang.MultiFn@45456cd1"</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">0x232f05b0</span> <span class="st">"java.lang.Object@232f05b0"</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">0x63c7beef</span> <span class="st">"java.lang.Object@63c7beef"</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">0x40a0c58c</span> <span class="st">"clojure.core.async.impl.channels.ManyToManyChannel@40a0c58c"</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">0x259e235e</span> <span class="st">"clojure.core.async.impl.channels.ManyToManyChannel@259e235e"</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$eval22346$fn__22347 <span class="bn">0x43f3ff50</span> <span class="st">"clojure.print_object.remove_extraneous$eval22346$fn__22347@43f3ff50"</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$eval22346$fn__22347 <span class="bn">0x5b2e4796</span> <span class="st">"clojure.print_object.remove_extraneous$eval22346$fn__22347@5b2e4796"</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$eval22350$fn__22351$fn__22352 <span class="bn">0x677f0c10</span> <span class="st">"clojure.print_object.remove_extraneous$eval22350$fn__22351$fn__22352@677f0c10"</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$eval22350$fn__22351$fn__22352 <span class="bn">0x6b94ada6</span> <span class="st">"clojure.print_object.remove_extraneous$eval22350$fn__22351$fn__22352@6b94ada6"</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_camp/pairing.html

Lines changed: 70 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,12 @@
66

77
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
88

9+
<meta name="author" content="Sean Corfield">
10+
<meta name="author" content="Timothy Pratley">
11+
<meta name="dcterms.date" content="2025-05-30">
12+
<meta name="keywords" content="transducers">
913

10-
<title>pairing – Clojure Civitas</title>
14+
<title>A few examples of Transducers – Clojure Civitas</title>
1115
<style>
1216
code{white-space: pre-wrap;}
1317
span.smallcaps{font-variant: small-caps;}
@@ -110,7 +114,7 @@
110114
<script data-goatcounter="https://clojurecivitas.goatcounter.com/count" async="" src="//gc.zgo.at/count.js"></script>
111115

112116

113-
<meta property="og:title" content="Clojure Civitas">
117+
<meta property="og:title" content="A few examples of Transducers – Clojure Civitas">
114118
<meta property="og:description" content="">
115119
<meta property="og:image" content="https://clojurecivitas.github.io/clojure_camp/images/civitas-icon.svg">
116120
<meta property="og:site_name" content="Clojure Civitas">
@@ -338,10 +342,63 @@
338342
<!-- margin-sidebar -->
339343

340344
<!-- main -->
341-
<main class="content" id="quarto-document-content"><header id="title-block-header" class="quarto-title-block"></header>
345+
<main class="content" id="quarto-document-content">
342346

343347

348+
<header id="title-block-header" class="quarto-title-block default">
349+
<div class="quarto-title">
350+
<h1 class="title">A few examples of Transducers</h1>
351+
</div>
352+
353+
354+
<div class="quarto-title-meta-author">
355+
<div class="quarto-title-meta-heading">Authors</div>
356+
<div class="quarto-title-meta-heading">Affiliations</div>
357+
358+
<div class="quarto-title-meta-contents">
359+
<p class="author"><a href="https://github.com/seancorfield">Sean Corfield</a> </p>
360+
</div>
361+
<div class="quarto-title-meta-contents">
362+
<p class="affiliation">
363+
<a href="https://clojure.camp/">
364+
Clojure Camp
365+
</a>
366+
</p>
367+
</div>
368+
<div class="quarto-title-meta-contents">
369+
<p class="author"><a href="https://timothypratley.blogspot.com/p/httpswww.html">Timothy Pratley</a> <a href="mailto:timothypratley@gmail.com" class="quarto-title-author-email"><i class="bi bi-envelope"></i></a> </p>
370+
</div>
371+
<div class="quarto-title-meta-contents">
372+
<p class="affiliation">
373+
<a href="https://hummi.app">
374+
Hummi
375+
</a>
376+
</p>
377+
</div>
378+
</div>
344379

380+
<div class="quarto-title-meta">
381+
382+
383+
<div>
384+
<div class="quarto-title-meta-heading">Published</div>
385+
<div class="quarto-title-meta-contents">
386+
<p class="date">May 30, 2025</p>
387+
</div>
388+
</div>
389+
390+
391+
</div>
392+
393+
394+
<div>
395+
<div class="keywords">
396+
<div class="block-title">Keywords</div>
397+
<p>transducers</p>
398+
</div>
399+
</div>
400+
401+
</header>
345402

346403

347404
<style></style>
@@ -358,9 +415,17 @@
358415
<script src="clojure_camp/pairing_files/md-default1.js" type="text/javascript"></script>
359416
<script src="clojure_camp/pairing_files/portal2.js" type="text/javascript"></script>
360417
<div class="sourceClojure">
361-
<div class="sourceCode" id="cb1"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a>(<span class="kw">ns</span> clojure-camp.pairing)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
418+
<div class="sourceCode" id="cb1"><pre class="sourceCode clojure code-with-copy"><code class="sourceCode clojure"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a>^{<span class="at">:clay</span></span>
419+
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a> {<span class="at">:quarto</span> {<span class="at">:title</span> <span class="st">"A few examples of Transducers"</span></span>
420+
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a> <span class="at">:type</span> <span class="at">:post</span></span>
421+
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a> <span class="at">:author</span> [<span class="at">:seancorfield</span> <span class="at">:timothypratley</span>]</span>
422+
<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a> <span class="at">:date</span> <span class="st">"2025-05-30"</span></span>
423+
<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a> <span class="at">:category</span> <span class="at">:clojure</span></span>
424+
<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a> <span class="at">:tags</span> [<span class="at">:transducers</span> <span class="at">:lazy-sequences</span> <span class="at">:xforms</span>]</span>
425+
<span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a> <span class="at">:keywords</span> [<span class="at">:transducers</span>]}}}</span>
426+
<span id="cb1-9"><a href="#cb1-9" aria-hidden="true" tabindex="-1"></a>(<span class="kw">ns</span> clojure-camp.pairing)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
362427
</div>
363-
<p>let’s work on an algorithm together!</p>
428+
<p>let’s work on a post together!</p>
364429
<p>this produces a lazy sequence of strings:</p>
365430
<div class="sourceClojure">
366431
<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>(<span class="kw">map</span> #(<span class="kw">str</span> <span class="st">"Hello, "</span> <span class="va">%</span> <span class="st">"!"</span>) [<span class="st">"Alice"</span> <span class="st">"Bob"</span> <span class="st">"Charlie"</span>])</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>

listings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
{
33
"listing": "/pages.html",
44
"items": [
5-
"/clojure_camp/pairing.html",
65
"/civitas/explorer.html"
76
]
87
},
98
{
109
"listing": "/posts.html",
1110
"items": [
1211
"/clojure/print_object/remove_extraneous.html",
12+
"/clojure_camp/pairing.html",
1313
"/conferences/scinoj_light_1/notes/hallway_track.html",
1414
"/math/primes/factorization/sieve_augmented.html",
1515
"/code_interview/beating/with_stupid_stuff/z_combinator_gambit.html",

pages.html

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -409,26 +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="1748631313449" data-listing-reading-time-sort="2" data-listing-word-count-sort="314">
413-
<div class="thumbnail"><a href="./clojure_camp/pairing.html" class="no-external">
414-
415-
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
416-
417-
</a></div>
418-
<div class="body">
419-
<h3 class="no-anchor listing-title">
420-
<a href="./clojure_camp/pairing.html" class="no-external"></a>
421-
</h3>
422-
<div class="delink listing-description"><a href="./clojure_camp/pairing.html" class="no-external">
423-
let’s work on an algorithm together!
424-
</a></div>
425-
</div>
426-
<div class="metadata">
427-
<a href="./clojure_camp/pairing.html" class="no-external">
428-
</a>
429-
</div>
430-
</div>
431-
<div class="quarto-post image-right" data-index="1" data-listing-file-modified-sort="1748631320323" data-listing-reading-time-sort="3" data-listing-word-count-sort="593">
412+
<div class="quarto-post image-right" data-index="0" data-listing-file-modified-sort="1748631757994" data-listing-reading-time-sort="3" data-listing-word-count-sort="593">
432413
<div class="thumbnail"><a href="./civitas/explorer.html" class="no-external">
433414

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

posts.html

Lines changed: 30 additions & 5 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="1748631310837" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="4" data-listing-word-count-sort="696">
420+
<div class="quarto-post image-right" data-index="0" data-listing-date-sort="1749081600000" data-listing-file-modified-sort="1748631748492" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="4" data-listing-word-count-sort="696">
421421
<div class="thumbnail"><a href="./clojure/print_object/remove_extraneous.html" class="no-external">
422422

423423
<p class="card-img-top"><img src="clojure/print_object/objection.jpg" class="thumbnail-image card-img"/></p>
@@ -442,7 +442,32 @@ <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="1748390400000" data-listing-file-modified-sort="1748631290088" 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="1748563200000" data-listing-file-modified-sort="1748631751059" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="3" data-listing-word-count-sort="420">
446+
<div class="thumbnail"><a href="./clojure_camp/pairing.html" class="no-external">
447+
448+
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
449+
450+
</a></div>
451+
<div class="body">
452+
<h3 class="no-anchor listing-title">
453+
<a href="./clojure_camp/pairing.html" class="no-external">A few examples of Transducers</a>
454+
</h3>
455+
<div class="delink listing-description"><a href="./clojure_camp/pairing.html" class="no-external">
456+
let’s work on a post together!
457+
</a></div>
458+
</div>
459+
<div class="metadata">
460+
<a href="./clojure_camp/pairing.html" class="no-external">
461+
<div class="listing-date">
462+
May 30, 2025
463+
</div>
464+
<div class="listing-author">
465+
Sean Corfield, Timothy Pratley
466+
</div>
467+
</a>
468+
</div>
469+
</div>
470+
<div class="quarto-post image-right" data-index="2" data-listing-date-sort="1748390400000" data-listing-file-modified-sort="1748631729672" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="12" data-listing-word-count-sort="2276">
446471
<div class="thumbnail"><a href="./conferences/scinoj_light_1/notes/hallway_track.html" class="no-external">
447472

448473
<img loading="lazy" src="./conferences/scinoj_light_1/notes/noj_components.png" class="thumbnail-image">
@@ -467,7 +492,7 @@ <h3 class="no-anchor listing-title">
467492
</a>
468493
</div>
469494
</div>
470-
<div class="quarto-post image-right" data-index="2" data-listing-date-sort="1748390400000" data-listing-file-modified-sort="1748631320977" 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="1748631758689" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="2" data-listing-word-count-sort="345">
471496
<div class="thumbnail"><a href="./math/primes/factorization/sieve_augmented.html" class="no-external">
472497

473498
<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
@@ -492,7 +517,7 @@ <h3 class="no-anchor listing-title">
492517
</a>
493518
</div>
494519
</div>
495-
<div class="quarto-post image-right" data-index="3" data-listing-date-sort="1748131200000" data-listing-file-modified-sort="1748631321057" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="9" data-listing-word-count-sort="1672">
520+
<div class="quarto-post image-right" data-index="4" data-listing-date-sort="1748131200000" data-listing-file-modified-sort="1748631758767" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="9" data-listing-word-count-sort="1672">
496521
<div class="thumbnail"><a href="./code_interview/beating/with_stupid_stuff/z_combinator_gambit.html" class="no-external">
497522

498523
<img loading="lazy" src="./code_interview/beating/with_stupid_stuff/z-combinator.jpg" class="thumbnail-image">
@@ -517,7 +542,7 @@ <h3 class="no-anchor listing-title">
517542
</a>
518543
</div>
519544
</div>
520-
<div class="quarto-post image-right" data-index="4" data-listing-date-sort="1746489600000" data-listing-file-modified-sort="1748631290091" 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="1748631729676" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="2" data-listing-word-count-sort="255">
521546
<div class="thumbnail"><a href="./scicloj/noj/intro/getting-started-noj.html" class="no-external">
522547

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

0 commit comments

Comments
 (0)