# MATH illustrate pairs
[hear] (define cons (? x / ? y / ? f / f (x) (y)));
[hear] (define car
(? pair /
pair (? x / ? y / x)));
[hear] (define cdr
(? pair /
pair (? x / ? y / y)));
[hear] (assign x (cons 0 4) / = (car / x) 0);
[hear] (assign x (cons 0 4) / = (cdr / x) 4);
[hear] (assign x (cons 6 2) / = (car / x) 6);
[hear] (assign x (cons 6 2) / = (cdr / x) 2);
[hear] (assign x (cons 3 9) / = (car / x) 3);
[hear] (assign x (cons 3 9) / = (cdr / x) 9);
[hear] (assign x (cons 7 / cons 10 2) /
= (car / x) 7);
[hear] (assign x (cons 7 / cons 10 2) /
= (car / cdr / x) 10);
[hear] (assign x (cons 7 / cons 10 2) /
= (cdr / cdr / x) 2);
[hear] (assign x (cons 1 / cons 15 17) /
= (car / x) 1);
[hear] (assign x (cons 1 / cons 15 17) /
= (car / cdr / x) 15);
[hear] (assign x (cons 1 / cons 15 17) /
= (cdr / cdr / x) 17);
[hear] (assign x (cons 8 / cons 14 9) /
= (car / x) 8);
[hear] (assign x (cons 8 / cons 14 9) /
= (car / cdr / x) 14);
[hear] (assign x (cons 8 / cons 14 9) /
= (cdr / cdr / x) 9);
[hear] (assign
x
(cons 3 /
cons 0 /
cons 2 /
cons 4 1) /
and (= 3 / car / x) /
and (= 0 / car / cdr / x) /
and (= 2 / car / cdr / cdr / x) /
and (= 4 /
car /
cdr /
cdr /
cdr /
x)
(= 1 /
cdr /
cdr /
cdr /
cdr /
x));