{
{   Unlike command processors, function processors are always invoked by direct
{ CYBIL procedure call.  The parameters passed to a function are the same as
{ those passed to a command processor with the addition of "work area" (which
{ is to used to construct the function's result value) and a parameter set by
{ the function processor to point to its result value.
{
{       function_processor (PARAMETER_LIST, WORK_AREA, RESULT, STATUS)
{
{ PARAMETER_LIST: (input)  This parameter specifies the actual parameter list
{       for the function.  Function parameters are passed in a sequence for
{       compatibility with the passing of parameters to a command processor.
{       Normally the function processor passes this parameter on to
{       clp$evaluate_parameters to be interpreted.  If, for some reason, the
{       function processor needs to examine the the unevaluated parameters, it
{       can pass this parameter to clp$get_parameter_list_text.
{
{ WORK_AREA: (input, output)  This parameter specifies an area of storage that
{       must be used to construct the function's result value.  The current
{       position of this sequence pointer must be updated to reflect the amount
{       of storage used by the function.  The function's result value must be
{       completely contained within the used part of this sequence.
{
{ RESULT: (output)  This parameter specifies the function's result value.
{
{ STATUS: (output)  This parameter specifies the completion status of the
{       function.
{
