Skip to content

Commit 2f3a26d

Browse files
author
Quarto GHA Workflow Runner
committed
Built site for gh-pages
1 parent e498a9b commit 2f3a26d

8 files changed

Lines changed: 51 additions & 41 deletions

File tree

.nojekyll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ccaa74d7
1+
ce9616ac

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">0x66133fab</span> <span class="st">"clojure.lang.MultiFn@66133fab"</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">0x1f829ef1</span> <span class="st">"clojure.lang.MultiFn@1f829ef1"</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">0x703b8d3c</span> <span class="st">"java.lang.Object@703b8d3c"</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">0x1645fba9</span> <span class="st">"java.lang.Object@1645fba9"</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">0x311a46ae</span> <span class="st">"clojure.core.async.impl.channels.ManyToManyChannel@311a46ae"</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">0x25f0affe</span> <span class="st">"clojure.core.async.impl.channels.ManyToManyChannel@25f0affe"</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$eval22418$fn__22419 <span class="bn">0x7b857cc8</span> <span class="st">"clojure.print_object.remove_extraneous$eval22418$fn__22419@7b857cc8"</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$eval22418$fn__22419 <span class="bn">0x60157e9c</span> <span class="st">"clojure.print_object.remove_extraneous$eval22418$fn__22419@60157e9c"</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$eval22422$fn__22423$fn__22424 <span class="bn">0x4b808</span> <span class="st">"clojure.print_object.remove_extraneous$eval22422$fn__22423$fn__22424@4b808"</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$eval22422$fn__22423$fn__22424 <span class="bn">0x56a0b769</span> <span class="st">"clojure.print_object.remove_extraneous$eval22422$fn__22423$fn__22424@56a0b769"</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: 7 additions & 2 deletions
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">0x2222aa18</span> <span class="st">"clojure.core$comp$fn__5895@2222aa18"</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">0x1931d9f3</span> <span class="st">"clojure.core$comp$fn__5895@1931d9f3"</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">
@@ -552,7 +552,12 @@ <h1 class="title">What if… we were taught transducers first?</h1>
552552
</div>
553553
<p>Because it is a “reducible”, it only does work when it is consumed, so it is “lazy” in that sense, but it is not a lazy sequence. We can get a lazy sequence from a transducer using <code>sequence</code>, if we want, or we can rely on <code>into</code> and <code>transduce</code> etc being eager.</p>
554554
<p>In conclusion, by separating the transformation from the input and the output, we gain expressive power, flexibility, and reuse: we can compose transducers, we can apply them to any input that produces values, and consume the results in any way we like.</p>
555-
<p>For example, transducers can be used in several different ways with <code>core.async</code> channels: * <a href="https://clojure.github.io/core.async/clojure.core.async.html#var-chan">on a <code>chan</code>nel</a> * <a href="https://clojure.github.io/core.async/clojure.core.async.html#var-pipeline">in a <code>pipeline</code></a> * <a href="https://clojure.github.io/core.async/clojure.core.async.html#var-transduce">or consumed with <code>transduce</code></a></p>
555+
<p>For example, transducers can be used in several different ways with <code>core.async</code> channels:</p>
556+
<ul>
557+
<li><a href="https://clojure.github.io/core.async/clojure.core.async.html#var-chan">on a <code>chan</code>nel</a></li>
558+
<li><a href="https://clojure.github.io/core.async/clojure.core.async.html#var-pipeline">in a <code>pipeline</code></a></li>
559+
<li><a href="https://clojure.github.io/core.async/clojure.core.async.html#var-transduce">or consumed with <code>transduce</code></a></li>
560+
</ul>
556561
<div style="background-color:grey;height:2px;width:100%;"></div>
557562
<div><pre><small><small>source: <a href="https://github.com/ClojureCivitas/clojurecivitas.github.io/blob/main/notebooks/clojure/transducers/what_if.clj">notebooks/clojure/transducers/what_if.clj</a></small></small></pre></div>
558563

pages.html

Lines changed: 1 addition & 1 deletion
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="1748723772247" 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="1748793412281" 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>

posts.html

Lines changed: 6 additions & 6 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="1748723763199" 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="1748793403622" 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,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="1748723760885" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="5" data-listing-word-count-sort="822">
445+
<div class="quarto-post image-right" data-index="1" data-listing-date-sort="1748649600000" data-listing-file-modified-sort="1748793401513" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="5" data-listing-word-count-sort="822">
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="1748723738688" 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="1748793383820" 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="1748723772853" 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="1748793412927" 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="1748131200000" data-listing-file-modified-sort="1748723772918" 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="1748793413000" 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="1748723738692" 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="1748793383824" 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)