The Null Object

The null (Code.Null) object plays an important role in flow of control in the execution of clauses and functions in the Sym language.

If the right side of an Assert evaluates to null, the function continues to the next clause.

A function where none of the clauses generate a non-null result will return null.

If any term in the right side of a function evaluates to null, the entire right side evaluates to null and processing continues with the next clause. For example, in this clause the IntegerEvaluate on the right-hand side will be null if "b" is odd (or not an integer). In this case, the whole clause will evaluate to null.

Note that the null object doesn't cause exceptions in Sym the way that null does in other programming languages.

Be careful not to confuse the Null type (which is in the Types namespace and has type of Type) with the null object (which is in the Code namespace and has type Null). This is one of a number of cases where it's convenient to have an object and a type with the same name, but all of these objects live in different namespaces.