user_help/0 hook

Synopsis

:- multifile user_help/0.

user_help

A hook for users to add more information when help/0 is called.

Description

Useful when you want a standard way to tell users something, like how to run a demo.

help/0 always calls user_help/0 in module user. Therefore, to be visible to help/0, user_help/0 must either be defined in or imported into module user.

Example

The common test harness for many Quintus test suites includes the clause:

     user_help :-
       suite_type(_,Type), suite_host(Host),
       write('You have loaded the Quintus test suite for '),
       write(Type), write(' on '), write(Host), nl, nl,
       write('You can invoke the suite as follows:'), nl, nl,
       write(' ?- quiet.               % run suite, concise output'), nl,
       write(' ?- verbose.             % run suite, verbose output'), nl,
       write(' ?- quiet(+Pred).        % run suite, concise output for'), nl,
       write('                         % tests of predicate Pred'), nl,
       write(' ?- quiet(+Pred, +N).    % similar to above, but runs the'),nl,
       write('                         %  test specified by N'), nl,
       write(' ?- verbose(+Pred).      % run suite, verbose output for'), nl,
       write('                         %  tests of predicate Pred'), nl,
       write('                         %  (Pred a name, NOT name/arity!'),nl,
       write(' ?- verbose(+Pred, +N).  % similar to above, but runs the'),nl,
       write('                         %  test specified by N'), nl,
       write(' ?- help.                % to get this message'), nl.
     

So if you compile the Prolog, C, Pascal or FORTRAN suites, you have a consistent help message telling you how to run the suites:

          <run prolog>
     
          <compile /ptg/suite/plsuite.pl>
     
          | ?- help.
     

If you have loaded the Quintus test suite for Prolog on Sun ??? you can invoke the suite as follows:

        ?- quiet.               % run suite, concise output
        ?- verbose.             % run suite, verbose output
        ?- quiet(+Pred).        % run suite, concise output for
                                % tests of predicate Pred
        ?- quiet(+Pred, +N).    % similar to above, but runs the
                                %  test specified by N
        ?- verbose(+Pred).      % run suite, verbose output for
                                %  tests of predicate Pred
                                %  (Pred a name, NOT name/arity!
        ?- verbose(+Pred, +N).  % similar to above, but runs the
                                %  test specified by N
        ?- help.                % to get this message
     

See Also

help/1 ref-olh