Minimalist vs maximalist SRFIs
Lassi Kortela 18 Nov 2022 18:17 UTC
SRFIs are tagged with keywords. Would it make sense to coin two new
keywords: "minimalist" and "maximalist"?
These seem to be two schools of SRFI design (minimalist providing a
small set of primitives to provide the given service, and maximalist
striving to offer a comprehensive and convenient API).
The following is the classification I would suggest for the first 30
SRFIs. If the keywords are adopted, I can do the rest as well (or you
can help me out). Let me know if you disagree on a classification.
Maximalist:
1: List Library
13: String Libraries
14: Character-set Library
18: Multithreading support
27: Sources of Random Bits
Minimalist:
0: Feature-based conditional expansion construct
2: AND-LET*: an AND with local bindings, a guarded LET* special form
3: List-Set Library
4: Homogeneous numeric vector datatypes
5: A compatible let form with signatures and rest arguments
6: Basic String Ports
7: Feature-based program configuration language
8: receive: Binding to multiple values
9: Defining Record Types
10: #, external form
11: Syntax for receiving multiple values
12: Exception Handling
15: Syntax for dynamic scoping
16: Syntax for procedures of variable arity
17: Generalized set!
20: Simple object system
21: Real-time multithreading support
22: Running Scheme Scripts on Unix
23: Error reporting mechanism
24: Define-syntax in local lexical scopes
25: Multi-dimensional Array Primitives
26: Notation for Specializing Parameters without Currying
28: Basic Format Strings
29: Localization