Wow! I feel your pain. In the past I was not saddled with any extensive Scheme system. I had full control over the minuscule dictionary of offerings. And so I preferred to impose my own thinking on the minimal subset. I did not get involved in the layers of SRFI.
But I look around today and see that Scheme has grown considerably. The folks in Texas don’t even call it Scheme any more. And you are right about the non-interoperability between versions. My only experiences were with STk and Gambit (from U.Montreal). STk was largely interpreted, while Gambit has a pretty cool compiler. But many years ago I was asked to speak at a conference, and I suggested talking about alternatives to Lisp. The conference board wouldn’t hear of it. And today I can hardly blame them. So why are you using Scheme? Are you under duress? Just blink twice if so… - DM > On Jun 18, 2024, at 02:07, Attila Lendvai <att...@lendvai.name> wrote: > >> No doubt others will point this out, but Scheme pre-dated CL by >> nearly a decade. Much like in discussions of apes and humans, the >> correct way of putting it is that they had common ancestors. > > > yeah, but WITH-EXCEPTION-HANDLER is defined in R6RS, which is dated 2007. > > and it was defined so that when the current handler is invoked, then it > remains the current handler; i.e. any error in the handler leads to a > recursive invocation of the same handler. > > R7RS seems to have fixed it. there are some more details here: > > https://practical-scheme.net/gauche/man/gauche-refe/Exceptions.html#index-with_002dexception_002dhandler > > it's just icing on the cake that in Guile w-e-h has a #:unwind? keyword arg > (i.e. at the end of the sexp) that completely changes the flow of control > (returning from the handler either returns to RAISE or to w-e-h). > > compared to this the condition system in CL feels much cleaner and much > better thought out. and it predates R6RS by decades of real-world experience. > > >> I've never attempted any substantial development in Scheme, but have >> wondered whether I were missing anything, so Attila's observation is >> of interest. > > > another misconception i had was that there's a similar level of portability > between various scheme implementations as between CLs, but it's not even > comparable. > > and while we are at it, the lisp-1/lisp-2 distinction (variable and function > namespaces) is just something to get used to, it's easy. > > >> Your criticisms of Scheme are certainly valid. I don’t think that >> WITH-EXCEPTION-HANDLER even exists in SRFI 7 or whatever it was >> called. > > > yeah, the other thing is that there are like 3 different groups of primitives > for exception handling, defined by various SRFIs, RxRS, or some > implementation-specific solutions. they often coexist in the same > implementation, and have a confusing web of interactions in some corner cases > like i mentioned above. it's often hard to even know which set of primitives > are obsolete, and which is the preferred one. > > >> And I, personally, think the biggest lacking in Scheme is the macro >> system. Oh I know all about the raging arguments about hygienic >> macrology. > > > yep, i admit that the argument for hygienic macros is very appealing, but i > find it surprisingly hard to write my macros in scheme, even though i wrote > countless non-trivial CL macros throughout the years. > > in CL you'll write subtle bugs until you learn the domain. in scheme you > won't write subtle bugs, but you'll struggle to formally encode what you > want, even in simple cases. > > but who knows, maybe i'm just too slow, or i just miss a good intro that > builds up my internal model of scheme macros... i don't know hygienic macros > well enough to judge whether the problem is with me, or with some accidental > complexity in the model. > > -- > • attila lendvai > • PGP: 963F 5D5F 45C7 DFCD 0A39 > -- > “If he controls your ideas he will soon control your actions, because every > action is preceded by an idea.” > — Silvano Arieti (1914–1981), 'The Will to Be Human' >