FUNCTION function_is_array
(func : maths_function) : BOOLEAN;
LOCAL tspace : tuple_space; temp : maths_space; END_LOCAL; IF NOT EXISTS (func) THEN RETURN (FALSE); END_IF; tspace := func.domain; IF (space_dimension (tspace) = 1) AND ((schema_prefix + 'TUPLE_SPACE') IN TYPEOF (factor1 (tspace))) THEN tspace := factor1 (tspace); END_IF; IF NOT ((schema_prefix + 'PRODUCT_SPACE') IN TYPEOF (tspace)) THEN RETURN (FALSE); END_IF; REPEAT i := 1 TO space_dimension (tspace); temp := factor_space (tspace, i); IF NOT ((schema_prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF (temp)) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE); END_FUNCTION; -- function_is_array
|