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 )
A name can be looked up using assoc:
(assoc name binding-list )
(assoc '?y '((?x 3) (?y 4) (?z 5))) = (?Y 4)The value of the binding can be gotten using second:
(second (assoc '?y '((?x 3) (?y 4) (?z 5)))) = 4