package demo_43;

import java.util.function.BiFunction;

public class FuncReduce {
	
	static int reduce(int[] array,BiFunction<Integer,Integer,Integer> fn,int seed) {
		int answer=seed;
		for(int val:array) answer=fn.apply(answer,val);
		return answer;
	}

	public static void main(String[] args) {
		int[] test = {17, 10, -5, 4};
		System.out.println("Answer 1: " + reduce(test,(x,y)->x>y?x:y,0));
		System.out.println("Answer 2: " + reduce(test,(x,y)->x+y,0));
		System.out.println("Answer 3: " + reduce(test,(x,y)->x%y,10));
		System.out.println("Answer 4: " + reduce(test,(x,y)->x,1242));
		System.out.println("Answer 5: " + reduce(test,(x,y)->x-y,0));
	}

}
