Re: Categorizing and describing implementations
Marc Feeley 14 May 2024 12:48 UTC
I’m somewhat of a hardliner on the subject of what is required for a system to qualify as a “Scheme”, which for me means an implementation of the Scheme language.
A “Scheme” should be defined as an implementation that conforms to one of the RnRS reports. Others should qualify as “Scheme subset”, or “Scheme like” implementations. I think we all agree that small deviations from an RnRS report are OK. But some features are essential, such as lexical scoping, proper tail-calls, and continuations. Just having parentheses and being simple does not qualify as “Scheme”.
By the way, Ribbit would qualify as a Scheme since it fully conforms to R4RS.
Marc
> On May 14, 2024, at 1:55 PM, Jakub T. Jankiewicz (via schemeorg list) <xxxxxx@srfi.schemers.org> wrote:
>
> On Tue, 14 May 2024 09:23:40 +0100
> Stephen De Gabrielle <xxxxxx@gmail.com> wrote:
>
>> I’m very tempted to try make a case for calling ‘Snap!’ a scheme dialect:
>> https://snap.berkeley.edu (looks like another block programming clone of
>> scratch, but has scheme capabilities like first class functions)
>
> Snap! may have similar semantic to Scheme but I would not call Scheme
> a graphical/block language, it's not even lisp. The same JavaScript, R or Ruby
> have lisp similarities but calling those languages lisp would be overuse of
> the term. Some people call them lisp though.
>
>>
>> Indicating if a scheme supports RnRS or SRFI’s is obviously very useful.
>>
>> Scheme is a living (and evolving) language with a passionate community in
>> addition to implementation communities. Let’s not exclude any.
>>
>
> --
> Jakub T. Jankiewicz, Senior Front-End Developer
> https://jcubic.pl/me
> https://lips.js.org
> https://koduj.org
>