2 Heresy Syntax and Conventions

Generally speaking, Heresy follows standard s-expression syntax as expected from any Lisp, being composed of parenthesized sequences of terms in Polish notation. Each sequence thus begins with an operator or function, and any number of arguments or additional s-expressions as needed.

There are however a few exceptions to usual expectations in the case of certain special forms like for, def, and if. These make use of additional literal terms as part of their syntax, to provide more clarity and similarity to BASIC-style syntax.

In accordance with that goal, Heresy also follows certain naming conventions as a matter of style. Functions which produce a string value are appended with $, and in general where a naming conflict between two similar functions in Racket/Scheme and BASIC exists, prefer BASIC.

When borrowing BASIC syntax and naming for use in Heresy, the author has generally relied chiefly on QBASIC and ECMA BASIC for reference.