This section gives an informal account of some of the lexical conventions used in writing Scheme programs. For a formal syntax of Scheme, see section 7.1 Formal syntax . Upper and lower case forms of a letter are never distinguished except within character and string constants. Most identifiers allowed by other programming languages are also acceptable to Scheme. 7.1.1 Lexical structure for a formal syntax of identifiers.
Some implementations allow all identifiers, including syntactic keywords, to be used as variables.
This is a compatible extension to the language, but ambiguities in the language result when the restriction is relaxed, and the ways in which these ambiguities are resolved vary between implementations. Whitespace characters are spaces and newlines. Whitespace is used for improved readability and as necessary to separate tokens from each other, a token being an indivisible lexical unit such as an identifier or number, but is otherwise insignificant. Whitespace may occur between any two tokens, but not within a token. Whitespace may also occur inside a string, where it is significant.