Class StreamReduce

All Implemented Interfaces:
JepComponent, PostfixMathCommandI, Serializable

public class StreamReduce extends NaryFunction implements JepComponent
Reduce a list to a single value using a lambda function and an initial identity value.

For example:

 reduce(1, [x,y] => x*y, [1,2,3,4,5])
 
If the stream is empty, the identity value is returned if the stream has a single element, then the result of applying the lambda function to the identity value and the single element is returned. Hence, the initial value should be the identity value for the lambda function.
See Also:
  • Constructor Details

    • StreamReduce

      public StreamReduce()
  • 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'.