Search                        Top                                  Index
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!
         .---.   .---.---.   .---.---.