package p13_lambdy;

import java.util.Arrays;

public class MojFrameworkZastosowanie {

    public static void main(String[] args) {
        // Tutaj zobaczymy takie użycie wyrażeń lambda i referencji do metod, jak w normalnym programowaniu.
        // Jest to możliwe dzięki temu, że zdefiniowaliśmy pewien ogólny schemat w ramach "frameworku".
        
        double[] a = {0.0, 0.5, 1.0, 2.0, 5.9, 13.3, 60.0};
        System.out.println(Arrays.toString(a));
        
        MojFrameworkFunkcyjny.zastosuj(x -> x*x, a);
        System.out.println(Arrays.toString(a));

        MojFrameworkFunkcyjny.zastosuj(Math::sqrt, a);
        System.out.println(Arrays.toString(a));

        MojFrameworkFunkcyjny.zastosuj(x -> x+4, a);
        System.out.println(Arrays.toString(a));

        MojFrameworkFunkcyjny.zastosuj(Math::sqrt, a);
        System.out.println(Arrays.toString(a));
    }

}
