TEACH BOXES Steven Hardy, January 1979
Lists represented by little boxes
=================================
"a" -> x;
.---.
x! a !
.---.
[a] -> x;
.---. .---.---.
x! *-+-->! a !nil!
.---. .---.---.
[how now brown cow] -> x;
.---. .---.---. .---.---. .-----.---. .---.---.
x! *-+-->!how! *-+-->!now! *-+-->!brown! *-+-->!cow!nil!
.---. .---.---. .---.---. .-----.---. .---.---.
[[a]] -> x;
.---. .---.---.
x! *-+-->! * !nil!
.---. .-+-.---.
!
v
.---.---.
! a !nil!
.---.---.
[[the man] kicked [a dog]] -> x;
.---. .---.---. .------.---. .---.---.
x! *-+-->! * ! *-+-->!kicked! *-+-->! * !nil!
.---. .-+-.---. .------.---. .-+-.---.
! !
v v
.---.---. .---.---. .---.---. .---.---.
!the! *-+-->!man!nil! ! a ! *-+-->!dog!nil!
.---.---. .---.---. .---.---. .---.---.
[a b] -> x; tl(x) -> y;
.---. .---.---. .---.---.
x! *-+-->! a ! *-+-->! b !nil!
.---. .---.---. .---.---.
^
!
.---. !
y! *-+-----------------*
.---.
[a b] -> x; [c d] -> y; x <> y -> z;
.---. .---.---. .---.---.
x! *-+-->! a ! *-+-->! b !nil!
.---. .---.---. .---.---.
.---. .---.---. .---.---.
y! *-+-->! c ! *-+-->! d !nil!
.---. .---.---. .---.---.
^
!
*---------------*
!
.---. .---.---. .---.-+-.
z! *-+-->! a ! *-+-->! b ! * !
.---. .---.---. .---.---.
[a b] -> x; [c d] -> y; y -> tl(tl(x));
.---. .---.---. .---.---.
x! *-+-->! a ! *-+-->! b ! * !
.---. .---.---. .---.-+-.
!
*---------------*
!
v
.---. .---.---. .---.---.
y! *-+-->! c ! *-+-->! d !nil!
.---. .---.---. .---.---.