fosstodon.org is one of the many independent Mastodon servers you can use to participate in the fediverse.
Fosstodon is an invite only Mastodon instance that is open to those who are interested in technology; particularly free & open source software. If you wish to join, contact us for an invite.

Administered by:

Server stats:

10K
active users

#scheme

13 posts13 participants0 posts today
alephoto85 :endeavourOS: :netbsd: :freebsd: :xmpp:<p>Honestly, I was not expecting the first edition but the fourth one (considering the cover and the ISBN given in the announce description), but I'm still exciting of the purchase (however, I can read the fourth edition online 😉)<br><br><a href="https://www.scheme.com/tspl4/" rel="nofollow noopener noreferrer" target="_blank">https://www.scheme.com/tspl4/</a><br><br><a href="https://fedi.bobadin.icu/tags/scheme" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>scheme</span></a> <a href="https://fedi.bobadin.icu/tags/book" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>book</span></a> <a href="https://fedi.bobadin.icu/tags/dev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>dev</span></a> <a href="https://fedi.bobadin.icu/tags/lisp" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>lisp</span></a> <a href="https://fedi.bobadin.icu/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a><br><br></p>
Andrew Tropin<p>TIL: There is an identifier-syntax macro that you can use to implement syntax-id-rules or do other fancy macro stuff.</p><p><a href="https://fosstodon.org/tags/scheme" class="mention hashtag" rel="tag">#<span>scheme</span></a> <a href="https://fosstodon.org/tags/guile" class="mention hashtag" rel="tag">#<span>guile</span></a> <a href="https://fosstodon.org/tags/racket" class="mention hashtag" rel="tag">#<span>racket</span></a> <a href="https://fosstodon.org/tags/macros" class="mention hashtag" rel="tag">#<span>macros</span></a></p>
Peter Brett<p>Shout-out to @dpk, hero of <a href="https://mastodon.me.uk/tags/Scheme" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Scheme</span></a> standardisation!</p><p>I spent an hour wittering about the horrifying hybrid of Lisp and Scheme that we ship in our products, and she did not run screaming…</p><p>I'm confident that R7RS Large is in safe hands.</p>
Stephen Ramsay<p>I'm not sure I can trace how I got there, but something had me playing around with GNU Guile (I've always liked the idea of an embeddable Scheme, I just never got around to looking at it closely).</p><p>Anyway, Guile is way cooler than I thought -- way more "unix-y" than other Schemes I've known.</p><p>But the real surprise was a static site generator -- Haunt (<a href="https://dthompson.us/projects/haunt.html" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">dthompson.us/projects/haunt.ht</span><span class="invisible">ml</span></a>) -- and a full-blown web framework -- Artanis (<a href="https://artanis.dev/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">artanis.dev/</span><span class="invisible"></span></a>)!</p><p>I am so glad both of these things exist.</p><p><a href="https://hcommons.social/tags/Scheme" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Scheme</span></a> <a href="https://hcommons.social/tags/Guile" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Guile</span></a> <a href="https://hcommons.social/tags/Webdev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Webdev</span></a></p>
fenix<p><span class="h-card" translate="no"><a href="https://mast.lat/@libretics" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>libretics</span></a></span> ... sistema operativo cuasi-irrompible,<br>y auto programable funcionalmente con unos pocos ficheros en lenguaje <a href="https://social.anartist.org/tags/Scheme" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Scheme</span></a> (hermano de <a href="https://social.anartist.org/tags/Elisp" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Elisp</span></a>) ?<br><a href="https://social.anartist.org/tags/gnu" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>gnu</span></a> <a href="https://social.anartist.org/tags/guix" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>guix</span></a></p>
Andrew Tropin<p>My small overview of &quot;JRM’s Syntax-rules Primer for the Merely Eccentric&quot; paper about Scheme macros and useful tricks for writing them. Difficulty: medium-easy.</p><p>mpv <a href="https://youtu.be/A2vi3vQ15kM" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">youtu.be/A2vi3vQ15kM</span><span class="invisible"></span></a></p><p>Paper:<br />- <a href="http://www.phyast.pitt.edu/~micheles/syntax-rules.pdf" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">http://www.</span><span class="ellipsis">phyast.pitt.edu/~micheles/synt</span><span class="invisible">ax-rules.pdf</span></a><br />- <a href="https://hipster.home.xs4all.nl/lib/scheme/gauche/define-syntax-primer.txt" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">hipster.home.xs4all.nl/lib/sch</span><span class="invisible">eme/gauche/define-syntax-primer.txt</span></a></p><p>Spoiler: at the end of the paper a minimal scheme evaluator implemented purely with macros.</p><p><a href="https://fosstodon.org/tags/scheme" class="mention hashtag" rel="tag">#<span>scheme</span></a> <a href="https://fosstodon.org/tags/guile" class="mention hashtag" rel="tag">#<span>guile</span></a> <a href="https://fosstodon.org/tags/racket" class="mention hashtag" rel="tag">#<span>racket</span></a> <a href="https://fosstodon.org/tags/lisp" class="mention hashtag" rel="tag">#<span>lisp</span></a> <a href="https://fosstodon.org/tags/macros" class="mention hashtag" rel="tag">#<span>macros</span></a></p>
HoldMyType<p>Complete reference implementation for Iota in R5RS <a href="https://mathstodon.xyz/tags/Scheme" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Scheme</span></a><br>```<br>let iota ()<br> (if (eq? #\* (read-char)) <br>((iota)(iota)) <br>(lambda (c) ((c (lambda (x) (lambda (y)<br> (lambda (z) ((x z)(y z)))))) (lambda (x) <br>(lambda (y) x)))))) ; <br>I = *ii ; K = *i*i*ii ; S = *i*i*i*ii ; infinite loop: ```sii``sii = ****i*i*i*ii*ii*ii***i*i*i*ii*ii*ii ; diverging infinite loop: ```s`sk`sk``sii = ; ****i*i*i*ii**i*i*i*ii*i*i*ii**i*i*i*ii*i*i*ii***i*i*i*ii*ii*ii <br>```</p><p><a href="https://web.archive.org/web/20160823182917/http://semarch.linguistics.fas.nyu.edu/barker/Iota/iota.scm" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">web.archive.org/web/2016082318</span><span class="invisible">2917/http://semarch.linguistics.fas.nyu.edu/barker/Iota/iota.scm</span></a></p>
Lisp & Scheme Weekly<p>Lisp &amp; Scheme recap for week 12/2025</p><p><a href="https://discu.eu/weekly/lisp/2025/12/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">discu.eu/weekly/lisp/2025/12/</span><span class="invisible"></span></a></p><p><a href="https://mastodon.social/tags/clojure" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>clojure</span></a> <a href="https://mastodon.social/tags/lisp" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>lisp</span></a> <a href="https://mastodon.social/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a> <a href="https://mastodon.social/tags/racket" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>racket</span></a> <a href="https://mastodon.social/tags/scheme" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>scheme</span></a></p><p>Get RSS feeds and support this bot with the premium plan: <a href="https://discu.eu/premium" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">discu.eu/premium</span><span class="invisible"></span></a></p>
futurile<p><a href="https://mastodon.social/tags/guix" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>guix</span></a> social talk this week by <span class="h-card" translate="no"><a href="https://mastodon.bida.im/@paulbutgold" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>paulbutgold</span></a></span> on self-hosting <span class="h-card" translate="no"><a href="https://floss.social/@forgejo" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>forgejo</span></a></span> using <a href="https://mastodon.social/tags/oci" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>oci</span></a> / <a href="https://mastodon.social/tags/docker" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>docker</span></a> <a href="https://mastodon.social/tags/containers" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>containers</span></a> </p><p>His Gocix project brings the power of declarative configuration to running container services.</p><p>Details on the Wiki or register at the Meetup:</p><p>- <a href="https://libreplanet.org/wiki/Group:Guix/GuixSocial" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">libreplanet.org/wiki/Group:Gui</span><span class="invisible">x/GuixSocial</span></a></p><p>- <a href="https://www.meetup.com/guix-social/events/306340848/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">meetup.com/guix-social/events/</span><span class="invisible">306340848/</span></a></p><p><span class="h-card" translate="no"><a href="https://social.coop/@fnat" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>fnat</span></a></span> </p><p><a href="https://mastodon.social/tags/guix" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>guix</span></a> <a href="https://mastodon.social/tags/nix" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>nix</span></a> <a href="https://mastodon.social/tags/linux" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>linux</span></a> <a href="https://mastodon.social/tags/containers" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>containers</span></a> <a href="https://mastodon.social/tags/docker" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>docker</span></a> <a href="https://mastodon.social/tags/oci" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>oci</span></a> <a href="https://mastodon.social/tags/scheme" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>scheme</span></a> <a href="https://mastodon.social/tags/guile" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>guile</span></a> <a href="https://mastodon.social/tags/selfhosting" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>selfhosting</span></a> <a href="https://mastodon.social/tags/forge" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>forge</span></a> <a href="https://mastodon.social/tags/foss" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>foss</span></a></p>
Andrew Tropin<p>TIL: There is a syntax-error macro and it throws exception at expand time, rather than runtime. This is really useful to make macro fail early and prevent oopsies during the program execution.</p><p><a href="https://fosstodon.org/tags/scheme" class="mention hashtag" rel="tag">#<span>scheme</span></a> <a href="https://fosstodon.org/tags/guile" class="mention hashtag" rel="tag">#<span>guile</span></a> <a href="https://fosstodon.org/tags/macros" class="mention hashtag" rel="tag">#<span>macros</span></a></p>
Lisp & Scheme Weekly<p>dwl-guile: A Dynamic tiling Wayland compositor configurable in Guile</p><p><a href="https://github.com/engstrand-config/dwl-guile" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/engstrand-config/dw</span><span class="invisible">l-guile</span></a></p><p>Discussions: <a href="https://discu.eu/q/https://github.com/engstrand-config/dwl-guile" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">discu.eu/q/https://github.com/</span><span class="invisible">engstrand-config/dwl-guile</span></a></p><p><a href="https://mastodon.social/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a> <a href="https://mastodon.social/tags/scheme" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>scheme</span></a></p>
Ramin Honary<blockquote><p>What I don’t like:</p><ul><li>some stuff breaks “everything is a list” model</li><li>Common Lisp is not minimal, includes overlapping and legacy stuff</li></ul><p>does <a class="hashtag" href="https://fe.disroot.org/tag/scheme" rel="nofollow noopener noreferrer" target="_blank">#scheme</a> address this?</p></blockquote><p><span class="h-card"><a class="u-url mention" href="https://mastodon.social/@rzeta0" rel="nofollow noopener noreferrer" target="_blank">@<span>rzeta0</span></a></span> I would say yes, Scheme sort of addresses those issues.</p><p>Scheme’s biggest advantage is that it is minimal enough that you can understand the whole language specification top-to-bottom, inside and out. But that is also it’s greatest drawback: is that it is too minimal to be practical. So for a long time, every single Scheme implementation has a it’s own large and unique set of libraries for solving practical programming problems that were incompatible with other Scheme implementations, making the Scheme ecosystem very fragmented. The <a href="https://srfi.schemers.org/%20" rel="nofollow noopener noreferrer" target="_blank">Scheme Request for Implementation (SRFI) process</a> is meant to address this fragmentation issue. Fragmentation is still (in my opinion) a pretty big problem, though things are much better than they were 20 years ago.</p><p>The R6RS standard, as I understand it, tried to make Scheme more practical, but it started to become too Common Lisp-like in complexity so it was mostly rejected by the Scheme community — with a few notable exceptions, like the <a href="https://www.scheme.com" rel="nofollow noopener noreferrer" target="_blank">Chez Scheme compiler</a>.</p><p>The next standard, R7RS, split the language into two parts: “R7RS small,” ratified in 2014, which is more like the original minimal core of the Scheme language, but just a few new features, in particular the <code>define-library</code> macro, for modularizing parts of Scheme programs into immutable environment objects. Then they took a collection of “SRFIs” and declared them to be part of the “R7RS large” language standard. The full “large” language specification is not yet fully ratified, even 11 years after the completion of R7RS “small,” but I think the SRFIs they have ratified so far already make the latest Scheme standard a very practical language. The final R7RS standard may end up being larger than Common Lisp, but that is fine with me since it can be almost completely implemented in the R7RS “small” Scheme standard.</p><p>R7RS “small” Scheme, in my opinion, is a powerful but minimal language that exists to implement other languages, but is still useful in it’s own right as a progeny of Lisp. The “R7RS large” language then adds the useful features of larger languages like Python or Common Lisp as a layer on top of the “R7RS small” language.</p><p>The current chair of the R7RS working group is Daphne Preston Kendal, and is often on Mastodon as <span class="h-card"><a class="u-url mention" href="https://chaos.social/@dpk" rel="nofollow noopener noreferrer" target="_blank">@<span>dpk</span></a></span> . She can tell you if I got anything in this post wrong.</p><p><a class="hashtag" href="https://fe.disroot.org/tag/tech" rel="nofollow noopener noreferrer" target="_blank">#tech</a> <a class="hashtag" href="https://fe.disroot.org/tag/software" rel="nofollow noopener noreferrer" target="_blank">#software</a> <a class="hashtag" href="https://fe.disroot.org/tag/schemelang" rel="nofollow noopener noreferrer" target="_blank">#SchemeLang</a> <a class="hashtag" href="https://fe.disroot.org/tag/r7rs" rel="nofollow noopener noreferrer" target="_blank">#R7RS</a> <a class="hashtag" href="https://fe.disroot.org/tag/programminglanguage" rel="nofollow noopener noreferrer" target="_blank">#ProgrammingLanguage</a></p>
Tariq<p>Finally got to chapter 14 of the <a href="https://mastodon.social/tags/lisp" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>lisp</span></a> course ... people say this is the power of lisp.</p><p>So far what I like about lisp:</p><p>* simple syntax, so not a lot to learn to read others code</p><p>* some constructs hit sweet spot of simple vs general eg DO, COND, LAMBDA</p><p>* simple conceptual model (almost everything is a list)</p><p>What I don't like (i'm a beginner)</p><p>* some stuff breaks "everything is a list" model</p><p>* Common Lisp is not minimal, includes overlapping and legacy stuff</p><p>does <a href="https://mastodon.social/tags/scheme" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>scheme</span></a> address this?</p>
Alexander Shendi<p>Yesterday's success:</p><p>Converted a program from Scheme to muLISP-90.</p><p><a href="https://rollenspiel.social/tags/lisp" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>lisp</span></a> <a href="https://rollenspiel.social/tags/mulisp" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>mulisp</span></a> <a href="https://rollenspiel.social/tags/scheme" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>scheme</span></a></p>
Andrew Tropin<p>Look at what is coming to Scheme ecosystem:</p><p><a href="https://nlnet.nl/project/SchemeTestingFramework" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">nlnet.nl/project/SchemeTesting</span><span class="invisible">Framework</span></a></p><p><a href="https://fosstodon.org/tags/scheme" class="mention hashtag" rel="tag">#<span>scheme</span></a> <a href="https://fosstodon.org/tags/guile" class="mention hashtag" rel="tag">#<span>guile</span></a> <a href="https://fosstodon.org/tags/lisp" class="mention hashtag" rel="tag">#<span>lisp</span></a> <a href="https://fosstodon.org/tags/srfi" class="mention hashtag" rel="tag">#<span>srfi</span></a> <a href="https://fosstodon.org/tags/srfi64" class="mention hashtag" rel="tag">#<span>srfi64</span></a></p>
Digital Mark λ ☕️ 🕹 🙄<p>I can't easily publish all the source for these at present, it's just such a mess and ties through multiple libraries, other programs, and test code. Making a Scheme "binary" is the only reasonable way out. And I can't use my full app build, because it has no UI, just command line.</p><p>Thus my Motie Engineer thing.<br><a href="https://mdhughes.tech/2019/11/22/adult-engineer-over-optimization-as-the-motie-problem/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mdhughes.tech/2019/11/22/adult</span><span class="invisible">-engineer-over-optimization-as-the-motie-problem/</span></a><br><a href="https://appdot.net/tags/scheme" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>scheme</span></a></p>
Wolf<p>I see <a href="https://hachyderm.io/tags/HelixEditor" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>HelixEditor</span></a> is getting a built-in language (eventually, I don’t know when, and I don’t have links to information about it). The language will be a <a href="https://hachyderm.io/tags/Scheme" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Scheme</span></a> called Steel. Steel is inspired by <a href="https://hachyderm.io/tags/RacketLang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>RacketLang</span></a> and written in Rust. I’ve written small programs in Racket and don’t much like it. I find them hard to understand when I come back to them later. Probably that’s just lack of experience. Adding a built-in language is a really good thing. Picking a Scheme is almost certainly a great choice, despite my feelings. If I do settle on Helix and if I do end up scripting it, maybe I’ll end up liking Scheme more. As far as I’m concerned, this addition to Helix can’t come soon enough.</p>
Digital Mark λ ☕️ 🕹 🙄<p>If I let it grind longer (iterations 400%), I get a filled-in thing like those donjon generators. But I don't like that much, it's too Gygaxian paper-thin-walls like. You can't get lost in corridors, you'd always have a room at hand.<br><a href="https://appdot.net/tags/scheme" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>scheme</span></a> <a href="https://appdot.net/tags/gamedev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>gamedev</span></a></p>
Digital Mark λ ☕️ 🕹 🙄<p>As close to perfect as a machine's gonna get. Doors are kinda optional.</p><p>Staring at this code all week and making little tweaks has been too much for my old brain.<br><a href="https://appdot.net/tags/scheme" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>scheme</span></a> <a href="https://appdot.net/tags/gamedev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>gamedev</span></a></p>
Digital Mark λ ☕️ 🕹 🙄<p>"Doo de doo why isn't this hook generating?"<br>Can't create hook at #(10 22.457139763981104): <a href="https://appdot.net/tags/f" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>f</span></a></p><p>MOTHERFUCK floating point‽ Oh, I'm an ass. I thought I was being fun that my rnd function does FP for (rnd 0), integer for (rnd 1+). Great idea if it's 1977 in BASIC.</p><p>Now I get to split this into two functions, AND audit a whole bunch of code.</p><p><a href="https://appdot.net/tags/scheme" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>scheme</span></a></p>