Definition of "Scheme" Lassi Kortela 14 May 2024 13:20 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.

It has been my impression that everyone who has a hard-line definition
of Scheme has a different one. Some would say hygienic macros are now
essential. W.r.t the RnRS reports, some would say R6RS is not Scheme, or
that promoting R4RS as Scheme is now outdated. (I don't agree with any
of these positions, but my opinion is not important here.)

IMHO it would be good to write a one-page definition of Scheme and have
some key people agree to it (yourself included, certainly). I expect the
definition would be a compromise, but hopefully palatable.

I agree that "Scheme subset" would be a helpful concept to promote, but
it's hard to find a catchy word for it. "Subscheme" would be perfect,
but IIRC the mathematical concepts "scheme" and "subscheme" don't quite
fit the set and subset distinction[1][2]. "Quasischeme"[3] sounds
derogatory and is a mouthful to pronounce. Few people would use it to
promote anything. We explored these terms with Marc N-W once.

[1] https://math.stackexchange.com/questions/816288/what-is-a-subscheme

[2] https://en.wikipedia.org/wiki/Scheme_(mathematics)

[3] https://sites.math.washington.edu/~smith/Research/Curves.pdf