Class PatternMatching.OptionsPattern

    • Constructor Detail

      • OptionsPattern

        public OptionsPattern()
    • Method Detail

      • evaluate

        public IExpr evaluate​(IAST ast,
                              EvalEngine engine)
        Description copied from class: AbstractCoreFunctionEvaluator
        Symbolic evaluation of a function. The method IExpr.head() contains the head (i.e. the function symbol) of this abstract syntax tree (AST).

        From ast.get(1) to ast.get(n) the ast contains the first to n-th argument of the function (alternatively you get the first to fifth argument with the methods IAST.arg1(), IAST.arg2(), IAST.arg3() ... IAST.arg5().

        Example: the expression Binomial(n,m) is represented as AST with ast.head() <=> F.Binomial, ast.arg1() <=> n and ast.arg2() <=> m

        If necessary use the methods from the Validate class to check the number or types of arguments in the evaluate method.

        Note: if the symbolic evaluation isn't possible or no result is found the evaluate method returns with a F.NIL value without throwing an exception!

        Specified by:
        evaluate in interface IFunctionEvaluator
        Specified by:
        evaluate in class AbstractCoreFunctionEvaluator
        Parameters:
        ast - the abstract syntax tree (AST) which should be evaluated
        engine - the users current evaluation engine
        Returns:
        the evaluated object or F#NIL, if evaluation isn't possible
        See Also:
        Validate
      • expectedArgSize

        public int[] expectedArgSize​(IAST ast)
        Description copied from interface: IFunctionEvaluator
        At index 0 return the "from", at index 1 return the "to" number of arguments, which are expected by this function. If the returned int array has length 3, the function allows headers unequal to the built-in function name (i.e. the function can be in "operator form").
        Parameters:
        ast - the abstract syntax tree (AST) those arguments should be checked
        Returns:
        null if no range for the number of arguments is specified.