I do not expect much code to be written in this form; it is very crude.
We take Church’s original syntax:
<Expression> ::= <ident> | (<Expression><Expression>) | (λ<ident><Expression>)and augment it to include Arabic numerals:
<Expression> ::= <ident> | (<Expression><Expression>) | (λ<ident><Expression>) | <digs> <digs> ::= <dig> | <digs> <dig>We exploit utf-8’s ample concept of letter and say tentatively that any single uni-code code-point that is not space (0x20), line-feed (0x0A), or mentioned in the above syntax, is a valid <ident>. I don’t want to depend on some external changing definition of what code-points denote some notion of ‘letter’. (Well just now it is just the 52 latin letters in either case and the 1100 some characters of the Yi syllabary. The predicate let controls acceptance as <ident>. ((λꈤꈤ)48) -> 48) <dig> is one of the 10 digits 0x30 thru 0x39. Scheme style comments are allowed, consisting of a semicolon up to the next new-line. Spaces, new-lines and comments can be inserted anywhere but in numerals without changing the program meaning.
Church uses capital latin letters to denote valid expressions in his informal discussions of formal expressions. We may need a similar convention for a ‘define’ like scheme. We may also want some some form of expression that includes contents from another named file.