(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