Here are the meanings of some terms, to reduce confusion.
This overall project is the "Readable Lisp S-expressions" project, or the "readable" project for short.
The mailing list we use is called "readable-discuss". Our wiki is just the "readable wiki", the git repository is just the "readable git repository".
The various notations we discuss are:
- S-expressions aka "traditional" S-expressions. This is the traditional notation for Lisp-like languages for expressing underlying data structures.
- M-expressions. This was an historic Algol-like notation created by John McCarthy for Lisp programs when Lisp was first created. It was designed to be readable, but it wasn't homoiconic or general, so it never really got anywhere. We're trying to do better, now that we know why it failed.
- I-expressions, aka SRFI-49. This was the indentation format defined in SRFI-49, and was the starting point for the sweet-expression indent rules (though we've changed things).
- Curly-infix-expressions, aka c-expressions.
- Neoteric-expressions, aka n-expressions. These used to be called "modern-expressions".
- Sweet-expressions, aka t-expressions.
The latter three are described in [Solution].
Names for types of curly-infix formats (0.5):
- Empty: {} maps to (), because it's an empty list.
- Escaping: {e} maps to e, because it "escapes" symbol e.
- Unary: {op e} maps to (op e), for any "op" and "e", because it lets you do {- x} and similar.
- Simple: {e1 op e2 op ...} maps to (even-parameter odd-parameters), this lets you do simple infix.
- Mixed: The rest, it has different operators mixed together. Gets "nfx" put in front. (A future version could add [Precedence] support for mixed notation, but that's not the current focus.)