Summary
   The functions provided by the SICStus Prolog Tcl/Tk library can be grouped
in two ways: by function, and by package.
   
By function, we can group them like this:
     
- basic functions
          
- tcl_new/1
- create a Tcl interpreter
 
- tcl_delete/1
- remove a Tcl interpreter
 
- tk_new/2
- create a Tcl interpreter with Tk extensions
 
- evaluation functions
          
- tcl_eval/3
- evaluate a Tcl expression from Prolog
 
- prolog
- evaluate a Prolog expression from Tcl
 
- Prolog event queue functions
          
- tcl_event/3
- evaluate a Tcl expression and return a Prolog queue event list
 
- tk_next_event/[2,3]
- pass control to Tk until a Prolog queue event happens and return
the head of the queue
 
- prolog_event
- place a Prolog term on the Prolog event queue from Tcl
 
- servicing Tcl and Tk events
          
- tk_do_one_event/[0,1]
- pass control to Tk until one Tk event is serviced
 
- tk_next_event/[2,3]
- also services Tk events but returns when a Prolog
queue event happens and returns the head of the queue
 
- passing control completely to Tk
          
- tk_main_loop/0
- control passed to Tk until all windows in all Tcl/Tk
interpreters are gone
 
- housekeeping
          
- tk_main_window/2
- return reference to main in of a Tcl/Tk interpreter
 
- tk_destroy_window/1
- destroy a window or widget
 
- tk_make_window_exist/1
- force display of a window or widget
 
- tk_num_main_windows/1
- return a count of the total number of Tk main windows
existing in the system
 
By package, we can group them like this:
     
- predicates for Prolog to interact with Tcl interpreters
          
- tcl_new/1
- create a Tcl interpreter
 
- tcl_delete/1
- remove a Tcl interpreter
 
- tcl_eval/3
- evaluate a Tcl expression from Prolog
 
- tcl_event/3
- evaluate a Tcl expression and return a Prolog event list
 
- predicates for Prolog to interact with Tcl interpreters with Tk extensions
          
- tk_new/2
- create a Tcl interpreter with Tk extensions
 
- tk_do_one_event/[0,1]
- pass control to Tk until one Tk event is serviced
 
- tk_next_event/[2,3]
- also services Tk events but returns when a Prolog
queue event happens and returns the head of the queue
 
- tk_main_loop/0
- control passed to Tk until all windows in all Tcl/Tk
interpreters are gone
 
- tk_main_window/2
- return reference to main in of a Tcl/Tk interpreter
 
- tk_destroy_window/1
- destroy a window or widget
 
- tk_make_window_exist/1
- force display of a window or widget
 
- tk_num_main_windows/1
- return a count of the total number of Tk main windows
existing in the system
 
- commands for the Tcl interpreters to interact with the Prolog system
          
- prolog
- evaluate a Prolog expression from Tcl
 
- prolog_event
- place a Prolog term on the Prolog event queue from Tcl
 
In the next section we will discuss how to use the
tcltk library to build graphical user interfaces to Prolog applications. 
More specifically we will discuss the ways in which cooperation
between Prolog and Tcl/Tk can be arranged: how to achieve them,
and their benefits.