shakedown.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A community for live music fans with roots in the jam scene. Shakedown Social is run by a team of volunteers (led by @clifff and @sethadam1) and funded by donations.

Administered by:

Server stats:

269
active users

#clos

0 posts0 participants0 posts today
Vassil Nikolov<p>[AMOP]<br><span class="h-card" translate="no"><a href="https://mathstodon.xyz/@dougmerritt" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>dougmerritt</span></a></span> <span class="h-card" translate="no"><a href="https://mathstodon.xyz/@weekend_editor" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>weekend_editor</span></a></span> <span class="h-card" translate="no"><a href="https://universeodon.com/@sigue" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>sigue</span></a></span> <span class="h-card" translate="no"><a href="https://mathstodon.xyz/@abuseofnotation" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>abuseofnotation</span></a></span> <span class="h-card" translate="no"><a href="https://gamerplus.org/@screwlisp" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>screwlisp</span></a></span></p><p>Right now I'm thinking that the real value of _The Art of the Metaobject Protocol_ is showing one way to do metaprogramming, and object-oriented programming is merely a demonstration domain.</p><p>Of course, what begat AMOP was a desire for an approach that can cover a large part of the OOP language design space, not just one point in that space, in order to be attractive to different schools of thought.</p><p><a href="https://ieji.de/tags/AMOP" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>AMOP</span></a><br><a href="https://ieji.de/tags/CLOS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CLOS</span></a><br><a href="https://ieji.de/tags/CommonLisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CommonLisp</span></a></p>
Vassil Nikolov<p><span class="h-card" translate="no"><a href="https://mathstodon.xyz/@dougmerritt" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>dougmerritt</span></a></span> <span class="h-card" translate="no"><a href="https://mathstodon.xyz/@weekend_editor" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>weekend_editor</span></a></span> <span class="h-card" translate="no"><a href="https://universeodon.com/@sigue" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>sigue</span></a></span> <span class="h-card" translate="no"><a href="https://mathstodon.xyz/@abuseofnotation" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>abuseofnotation</span></a></span> <span class="h-card" translate="no"><a href="https://gamerplus.org/@screwlisp" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>screwlisp</span></a></span></p><p>&gt; no one else has been mentioning (so far as I've noticed) "The Art of the Metaobject Protocol"</p><p>Not in this thread.<br>Indeed, this book is a tour de force (et de magique).</p><p>&gt; uncertain that the topic deserved such a deep analysis</p><p>The topic—maybe, maybe not, but the book is really about the metatopic, i.e. about metaprogramming, if I may abuse this prefix.<br>(I know this ought to be formulated more carefully.)</p><p><a href="https://ieji.de/tags/AMOP" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>AMOP</span></a><br><a href="https://ieji.de/tags/CLOS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CLOS</span></a><br><a href="https://ieji.de/tags/CommonLisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CommonLisp</span></a></p>
Vassil Nikolov<p><span class="h-card" translate="no"><a href="https://mathstodon.xyz/@weekend_editor" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>weekend_editor</span></a></span> <span class="h-card" translate="no"><a href="https://universeodon.com/@sigue" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>sigue</span></a></span> <span class="h-card" translate="no"><a href="https://mathstodon.xyz/@dougmerritt" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>dougmerritt</span></a></span> <span class="h-card" translate="no"><a href="https://mathstodon.xyz/@abuseofnotation" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>abuseofnotation</span></a></span> <span class="h-card" translate="no"><a href="https://gamerplus.org/@screwlisp" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>screwlisp</span></a></span></p><p>&gt; (call-next-method) is a procedural way to do this, costing an extra function call at runtime, but obviating the need for weird compilation.</p><p>And that is the costs-of-lisp-implementation consideration.</p><p>The other one is the program design consideration (including the costs of program modification), which often leads me to prefer a declarative style, but that is my point of view, there are always tradeoffs, etc.</p><p><a href="https://ieji.de/tags/CLOS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CLOS</span></a><br><a href="https://ieji.de/tags/CommonLisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CommonLisp</span></a></p>
Vassil Nikolov<p><span class="h-card" translate="no"><a href="https://mathstodon.xyz/@weekend_editor" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>weekend_editor</span></a></span> <span class="h-card" translate="no"><a href="https://universeodon.com/@sigue" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>sigue</span></a></span> <span class="h-card" translate="no"><a href="https://mathstodon.xyz/@dougmerritt" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>dougmerritt</span></a></span> <span class="h-card" translate="no"><a href="https://mathstodon.xyz/@abuseofnotation" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>abuseofnotation</span></a></span> <span class="h-card" translate="no"><a href="https://gamerplus.org/@screwlisp" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>screwlisp</span></a></span></p><p>P.S.<br>If I recall correctly, freezing a set of class and generic function definitions (including the methods) precludes some operations later, like redefining a class at run time, but I don't know if this is related to your question.<br>Again, don't trust me.</p><p><a href="https://ieji.de/tags/CLOS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CLOS</span></a><br><a href="https://ieji.de/tags/CommonLisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CommonLisp</span></a></p>
Vassil Nikolov<p><span class="h-card" translate="no"><a href="https://mathstodon.xyz/@dougmerritt" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>dougmerritt</span></a></span> <span class="h-card" translate="no"><a href="https://mathstodon.xyz/@abuseofnotation" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>abuseofnotation</span></a></span> <span class="h-card" translate="no"><a href="https://gamerplus.org/@screwlisp" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>screwlisp</span></a></span> <span class="h-card" translate="no"><a href="https://universeodon.com/@sigue" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>sigue</span></a></span></p><p>&gt; since it came up, how many CLOS features do you need?</p><p>You are right to ask.<br>Off the top of my head, I've needed<br>multiple inheritance,<br>multiple dispatch,<br>"before" and "after" methods.<br>Maybe I did something with method combination once or twice, but let's not count this if I can't recall properly.<br>But I am not a serious ("heavy-duty") <a href="https://ieji.de/tags/CLOS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CLOS</span></a> user.</p><p>If this counts, in other languages I have missed capabilities to customize object initialization.</p>
Vassil Nikolov<p>[Red Daly's Parenscript Object System, simplified-CLOS-like.]</p><p><span class="h-card" translate="no"><a href="https://mathstodon.xyz/@abuseofnotation" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>abuseofnotation</span></a></span> <span class="h-card" translate="no"><a href="https://gamerplus.org/@screwlisp" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>screwlisp</span></a></span> <span class="h-card" translate="no"><a href="https://universeodon.com/@sigue" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>sigue</span></a></span> </p><p>Thank you, that is impressive.<br>From Stanford.<br>Regrettably, I don't have the time to find out the extent of simplification.</p><p><a href="https://ieji.de/tags/CLOS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CLOS</span></a><br><a href="https://ieji.de/tags/CommonLisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CommonLisp</span></a><br><a href="https://ieji.de/tags/JavaScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JavaScript</span></a><br><a href="https://ieji.de/tags/Parenscript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Parenscript</span></a></p>
Vassil Nikolov<p>[Local generic functions.]</p><p><span class="h-card" translate="no"><a href="https://universeodon.com/@sigue" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>sigue</span></a></span> <span class="h-card" translate="no"><a href="https://gamerplus.org/@screwlisp" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>screwlisp</span></a></span></p><p>In fact, `generic-flet' was proposed and not adopted.</p><p>&lt;<a href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Issues/iss181.html" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">http://www.</span><span class="ellipsis">ai.mit.edu/projects/iiip/doc/C</span><span class="invisible">ommonLISP/HyperSpec/Issues/iss181.html</span></a>&gt;</p><p>I am glad you found a bug 🙂.</p><p><a href="https://ieji.de/tags/CLOS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CLOS</span></a><br><a href="https://ieji.de/tags/CommonLisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CommonLisp</span></a></p>
Vassil Nikolov<p>[CLOS and JavaScript]</p><p><span class="h-card" translate="no"><a href="https://gamerplus.org/@screwlisp" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>screwlisp</span></a></span> <span class="h-card" translate="no"><a href="https://universeodon.com/@sigue" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>sigue</span></a></span></p><p>&gt; parenscript obviously doesn't have its own CLOS implementation</p><p>And achieving that doesn't seem like a five-minute job...</p><p>I am not the judge of whether that work can be justified, no matter how attractive it is.</p><p><a href="https://ieji.de/tags/CLOS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CLOS</span></a><br><a href="https://ieji.de/tags/CommonLisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CommonLisp</span></a><br><a href="https://ieji.de/tags/JavaScript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>JavaScript</span></a><br><a href="https://ieji.de/tags/Parenscript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Parenscript</span></a></p>
Vassil Nikolov<p><span class="h-card" translate="no"><a href="https://gamerplus.org/@screwlisp" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>screwlisp</span></a></span></p><p>&gt; had to rewrite my hurkle game without using CLOS. I thought a bit about using the 'make-load-form generic</p><p>Embarrassingly, my memory fails now about what exactly happened to standardizing anonymous generic functions.</p><p><a href="https://ieji.de/tags/CLOS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CLOS</span></a><br><a href="https://ieji.de/tags/CommonLisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CommonLisp</span></a></p>
Chief TWiT :twit:<p>I've completed "Pulse Propagation" - Day 20 - Advent of Code 2023 <a href="https://twit.social/tags/AdventOfCode" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>AdventOfCode</span></a> <a href="https://adventofcode.com/2023/day/20" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">adventofcode.com/2023/day/20</span><span class="invisible"></span></a></p><p>Yes I'm still plugging away. Used OOP for this one, specifically Common Lisp's CLOS. Very elegant!</p><p><a href="https://github.com/leolaporte/aoc-cl/blob/main/2023/Day_20/Day_20.lisp" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/leolaporte/aoc-cl/b</span><span class="invisible">lob/main/2023/Day_20/Day_20.lisp</span></a></p><p><a href="https://twit.social/tags/AOC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>AOC</span></a> <a href="https://twit.social/tags/Lisp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Lisp</span></a> <a href="https://twit.social/tags/CLOS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CLOS</span></a></p>
Panicz Maciej GodekThoughts on Java vs Common Lisp