|
FUNCTION function_applicability (func : maths_function_select, arguments : LIST [1:?] OF maths_value) : BOOLEAN; LOCAL domain : tuple_space := convert_to_maths_function ( func ) . domain ; domain_types : SET OF STRING := TYPEOF ( domain ) ; narg : positive_integer := SIZEOF ( arguments ) ; arg : generic_expression ; END_LOCAL ; IF ( schema_prefix + 'product_space' ) IN domain_types THEN IF space_dimension ( domain ) <> narg THEN RETURN ( FALSE ) ; END_IF ; ELSE IF ( schema_prefix + 'extended_tuple_space' ) IN domain_types THEN IF space_dimension ( domain ) > narg THEN RETURN ( FALSE ) ; END_IF ; ELSE RETURN ( FALSE ) ; END_IF ; END_IF ; REPEAT i := 1 TO narg ; arg := convert_to_operand ( arguments [ i ] ) ; IF NOT has_values_space ( arg ) THEN RETURN ( FALSE ) ; END_IF ; IF NOT compatible_spaces ( factor_space ( domain , i ) , values_space_of ( arg ) ) THEN RETURN ( FALSE ) ; END_IF ; END_REPEAT ; RETURN ( TRUE ) ; END_FUNCTION; -- function_applicability |
|
public class FFunction_applicability public static Value run(SdaiContext _context, Value func, Value arguments) |