The interpreter understands UTF-8 source files using the following syntax:

; Single-line comments start with a semicolon

#! Multi-line comments
start with hash-bang and end with bang-hash

All non-comment values should be separated by whitespace.

Positive numbers

Integers start with a base-10 digit:

0 1 23 456 78900000

Floating-point numbers start with a base-10 digit and contain a single .:

0.12 3.4 5. 6.789
[Lists are delimited by square brackets]
[] ; an empty list
"Strings are double-quoted"
"They may contain an escaped (\n) or embedded
newline character"
"Double-quote characters may be \"escaped\" too"

Symbols are "anything else": a symbol starts with anything except numbers, [, ], " or comments, and continues until the first [, ], ", ; or whitespace character.

Symbol "sigil" rules

Additionally, ' and : are read as independent symbols if they appear as the first character of a symbol.
For example, 'foo and :bar are read identically to ' foo and : bar respectively.

Finally, # as the start of a symbol pairs itself with the next character (if it is not whitespace or !) to form an independent symbol.
For example, #056, #[foo, and #xbar are read identically to #0 56, #[ foo, and #x bar respectively.

You can use these convenience rules to approximate custom literal values, e.g. characters, keywords, hashtables, etc.