Class Reduce

All Implemented Interfaces:
JepComponent, PostfixMathCommandI, Serializable

public class Reduce extends NaryFunction implements JepComponent
Reduce a list, using an identity value and a lambda function defining the reduction operation.
 Sum = [x,y]=>x+y
 reduce(0, Sum, [1,2,3,4,5])
 

This is similar to the Fold function, but will work with empty lists, in which case the identity value is returned.

Since:
Jep 4.1, extensions 2.2
See Also:
  • Constructor Details

    • Reduce

      public Reduce()
  • Method Details

    • eval

      public Object eval(Object[] args) throws EvaluationException
      Description copied from class: NaryFunction
      Evaluate the function
      Specified by:
      eval in class NaryFunction
      Parameters:
      args - arguments to the function
      Returns:
      value returned by the function
      Throws:
      EvaluationException - if the calculation cannot be performed
    • init

      public void init(Jep jep)
      Description copied from interface: JepComponent
      Initialize the component. This method is called whenever a component is added to Jep. Hence, it allows components to keep track of the other components they may rely on.
      Specified by:
      init in interface JepComponent
      Parameters:
      jep - the current Jep instance
    • getLightWeightInstance

      public JepComponent getLightWeightInstance()
      Description copied from interface: JepComponent
      Gets a light-weight instance suitable for using in multiple threads.
      Specified by:
      getLightWeightInstance in interface JepComponent
      Returns:
      either a new instance, null or 'this'.