(DEFINEQ (CREATE.WINDOWS (LAMBDA (POSITION1 POSITION2 POSITION3) (IF (BOUNDP (QUOTE WINDOW1)) THEN () ELSE (SETQ WINDOW1 (CREATEW POSITION1)) ) (IF (BOUNDP (QUOTE WINDOW2)) THEN () ELSE (SETQ WINDOW2 (CREATEW POSITION2)) ) (IF (BOUNDP (QUOTE WINDOW3)) THEN () ELSE (SETQ WINDOW3 (CREATEW POSITION3)) (SETQ DEMOFONT (FONTCREATE (QUOTE (HELVETICA 18 STANDARD)))) (DSPFONT DEMOFONT WINDOW3) ) ) ) ) (DEFINEQ (SET.STEP.TYPE (LAMBDA (STEPTYPE) (SETQ STEP.SWITCH STEPTYPE) ) ) ) (DEFINEQ (GRAPH.STRUCTURES (LAMBDA (STRUCTURE.LIST1 STRUCTURE.LIST2) (SHOWGRAPH (LAYOUTSEXPR STRUCTURE.LIST1 (QUOTE (VERTICAL (MARK))) NIL (FONTCREATE (QUOTE HELVETICA) 18 (QUOTE STANDARD) ) ) WINDOW1 () () T ) (SHOWGRAPH (LAYOUTSEXPR STRUCTURE.LIST2 (QUOTE (VERTICAL (MARK))) NIL (FONTCREATE (QUOTE HELVETICA) 18 (QUOTE STANDARD) ) ) WINDOW2 () () T ) ) ) ) (DEFINEQ (WAIT.FOR.STEP (LAMBDA () (IF (EQ STEP.SWITCH (QUOTE one.second)) THEN (DISMISS 1000) ELSEIF (EQ STEP.SWITCH (QUOTE mouse.button)) THEN (UNTILMOUSESTATE LEFT) ELSE NIL ) ) ) ) (DEFINEQ (RUN.PROLOG.DEMO (LAMBDA () (NULL (PROLOG (QUOTE run) 0 (QUOTE si))) ) ) ) (DEFINEQ (RUN.FOREVER (LAMBDA () (WHILE T (PROLOG (QUOTE run.all.eg) 0 (QUOTE si))) ) ) ) (DEFINEQ (DISPLAY.SENTENCE (LAMBDA (LST) (DSPFILL () () () WINDOW3) (CENTERPRINTINREGION (MAKSTR LST) () WINDOW3) ) ) ) (DEFINEQ (MAKSTR (LAMBDA (LST) (CONCATLIST (MAPLIST LST (QUOTE ADDSP))) ) ) ) (DEFINEQ (ADDSP (LAMBDA (LST) (CONCAT (CAR LST) " ") ) ) ) (SETQ PROLOG.INPUT.MENU1 (create MENU ITEMS _ (QUOTE ( ("The intelligent customer requires... " (QUOTE (the intelligent customer requires intelligent workstations .))) ("Xerox produces intelligent... " (QUOTE (xerox produces intelligent workstations .))) ("Xerox workstations run... " (QUOTE (xerox workstations run quintus prolog .))) ) ) MENUFONT _ (FONTCREATE (QUOTE (HELVETICA 18 STANDARD))) ) ) (DEFINEQ (GET.SENTENCE (LAMBDA NIL (MENU PROLOG.INPUT.MENU1) ) ) ) STOP