de programación basado en el uso de funciones matemáticas, Los lenguajes de PF son aquellos lenguajes donde las VAR no tienen estado (inmutables). Los programas se estructuran componiendo expresiones que evalúan como funciones. Lenguaje Imperativo Lenguaje Funcional Java 8 Lenguaje Hibrido No hay tipos de datos en la Programación funcional, sin embargo en JAVA se aplicara la inferencia de tipos (trabajo del motor). Hi
funcional funge principalmente para permitir el paso de funciones a métodos, esto en pocas palabras, concluye que podemos pasar una implementación de una función como argumento (parámetro) de un método. La interfaz funcional nos va a permitir simular que pasamos una función implementada como argumento de un método. My name is Coon
una interfaz sea funcional debe cumplir con un solo requisito: Solo debe tener un método abstracto. La interfaz funcional puede tener varios métodos estáticos y default si quiere, pero solo un método abstracto. Es posible para nosotros crear nuestras propias interfaces funcionales, sin embargo, la versión 8 de Java ha incluido una gran cantidad de estas interfaces dentro del paquete java.util.function. I am here
interfaz puede tener cualquier cantidad de métodos implementados siempre y cuando sean declarados como default. Las interfaces pueden tener métodos estáticos implementados. To teach you
una función sin nombre, que tiene un cuerpo de función y puede o no recibir parámetros. En Java, una expresión lambda siempre va a representar el método abstracto de una interfaz funcional. La expresión lambda va a separar su lista de parámetros de su cuerpo de función por medio del operador flecha -> Functional Interfaces
de entrada(Input) de la función Donde R es un genérico que indica el tipo de respuesta de la función. Representa un función que acepta un argumento y produce un resultado. https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html apply(T t) Applies this function to the given argument.
de entrada(Input) de la función Donde R es un genérico que indica el tipo de respuesta de la función. Representa un función que acepta un argumento y produce un resultado. https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html
un resultado. Ésta es la especialización de dos aridades de Function. https://docs.oracle.com/javase/8/docs/api/java/util/function/BiFunction.htm BiFunction<T,U,R > Donde T es un genérico que indica el tipo de entrada(Input) de la función Donde U es un genérico que indica el tipo de entrada(Input) de la función Donde R es un genérico que indica el tipo de respuesta de la función.
argumento. https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html Predicate<T> Donde T es un genérico que indica el tipo de entrada(Input) del predicado test(T t) Evaluates this predicate on the given argument.
argumento. https://docs.oracle.com/javase/8/docs/api/java/util/function/BiPredicate.ht BiPredicate<T,U> Donde T es un genérico que indica el primer tipo de entrada(Input) del predicado Donde U es un genérico que indica el segundo tipo de entrada(Input) del predicado or(BiPredicate<? super T,? super U> other) Returns a composed predicate that represents a short- circuiting logical OR of this predicate and another.
entrada y no devuelve ningún resultado. A diferencia de la mayoría de las otras interfaces funcionales, se espera que Consumer opere a través de efectos secundarios. https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html Consumer<T> Donde T es un genérico que indica el tipo de entrada(Input) de la operación. accept(T t) Performs this operation on the given argument. andThen(Consumer<? super T> after) Returns a composed Consumer that performs, in sequence, this operation followed by the after operation.
y no devuelve ningún resultado. Esta es la especialización de dos aridades de Consumer. A diferencia de la mayoría de las otras interfaces funcionales, se espera que BiConsumer opere a través de efectos secundarios. https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html BiConsumer<T,U> Donde T es un genérico que indica el primer tipo de entrada(Input) de la operación. Donde U es un genérico que indica el segundo tipo de entrada(Input) de la operación.
Supplier<T> Donde T es un genérico que indica el primer tipo de entrada(Input) de la operación. This is a functional interface whose functional method is get().
un resultado del mismo tipo que su operando. Esta es una especialización de Function para el caso en el que el operando y el resultado son del mismo tipo. https://docs.oracle.com/javase/8/docs/api/java/util/function/UnaryOperator.html UnaryOperator<T> Donde T es un genérico que indica la entrada y salida de la función
produciendo un resultado del mismo tipo que los operandos. Esta es una especialización de BiFunction para el caso donde los operandos y el resultado son todos del mismo tipo. https://docs.oracle.com/javase/8/docs/api/java/util/function/BinaryOperator.html BinaryOperator<T> Donde T es un genérico que indica la entrada y salida de la función minBy(Comparator<? super T> comparator) Returns a BinaryOperator which returns the lesser of two elements according to the specified Comparator. maxBy(Comparator<? super T> comparator) Returns a BinaryOperator which returns the greater of two elements according to the specified Comparator.
de elementos de una colección. Ordenación personalizada en este caso. https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html Comparator<T> Donde T es un genérico que indica la entrada y salida de la función comparing(Function<? super T,? extends U> keyExtractor, Comparator<? super U> keyComparator) Accepts a function that extracts a sort key from a type T, and returns a Comparator<T> that compares by that sort key using the specified Comparator.