|
FUNCTION function_is_table (func : maths_function) : BOOLEAN; LOCAL tspace : tuple_space ; temp : maths_space ; base : INTEGER ; 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 ; temp := factor1 ( tspace ) ; IF NOT ( ( schema_prefix + 'finite_integer_interval' ) IN TYPEOF ( temp ) ) THEN RETURN ( FALSE ) ; END_IF ; base := temp \ finite_integer_interval . min ; IF ( base <> 0 ) AND ( base <> 1 ) THEN RETURN ( FALSE ) ; END_IF ; REPEAT i := 2 TO space_dimension ( tspace ) ; temp := factor_space ( tspace , i ) ; IF NOT ( ( schema_prefix + 'finite_integer_interval' ) IN TYPEOF ( temp ) ) THEN RETURN ( FALSE ) ; END_IF ; IF temp \ finite_integer_interval . min <> base THEN RETURN ( FALSE ) ; END_IF ; END_REPEAT ; RETURN ( TRUE ) ; END_FUNCTION; -- function_is_table |
|
public class FFunction_is_table public static Value run(SdaiContext _context, Value func) |