A binding is a correspondence of a name and a value.
In Lisp, it is conventional to represent a binding as a cons: (cons name value ), e.g. (?X . 3); we will use
a list, (list name value ), e.g. (?X 3) .
We will use names that begin with ? to denote variables.

A set of bindings is represented as a list, called an association list,
or alist for short. A new binding can be added by: (cons (list name value ) binding-list )