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! .---. .---.---. .---.---.