La composición de funciones es una forma en la que una función se mezcla con otras funciones. Durante la composición, una función mantiene la referencia a otra función para cumplir su misión. Hay algunas formas diferentes en las que puede tener lugar la composición de una función, como se muestra a continuación: –
- componer: el método de composición funciona con funciones val . Sintaxis:
(function1 compose function2)(parameter)
- En la sintaxis anterior, function2 funciona primero con el parámetro pasado y luego pasa y luego devuelve un valor para pasar a function1. Ejemplo 1:
Scala
// A Scala program to illustrate // compose method with val function // Creating object object GFG { // Main method def main(args: Array[String]) { println((add compose mul)(2)) // adding more methods println((add compose mul compose sub)(2)) } val add=(a: Int)=> { a + 1 } val mul=(a: Int)=> { a * 2 } val sub=(a: Int) =>{ a - 1 } }
- Producción :
5 3
- En el ejemplo anterior, en primer lugar llamamos a la función mul y obtuvimos 4 (2 * 2) y luego llamamos a la función add y obtuvimos 5 (4 + 1). de manera similar (agregar componer mul componer sub)(2) imprimirá 3 (paso 1: 2 – 1 = 1, paso 2: 1 * 2 = 2, paso 3: 2 + 1 = 3).
- andThen : el método andThen también funciona con funciones val . Sintaxis:
(function1 andThen function2)(parameter)
- En la sintaxis anterior, la función 1 funciona primero con el parámetro pasado y luego pasa y luego devuelve un valor para pasar a la función 2. o igual que a continuación:
function2(function1(parameter))
- Ejemplo 2:
Scala
// A Scala program to illustrate //andThen method with val function // Creating object object GFG { // Main method def main(args: Array[String]) { println((add andThen mul)(2)) // Adding more methods println((add andThen mul andThen sub)(2)) } val add=(a: Int)=> { a + 1 } val mul=(a: Int)=> { a * 2 } val sub=(a: Int) =>{ a - 1 } }
- Producción :
6 5
- En el ejemplo anterior, primero agregue la función llamada, obtuvimos 3 (2 + 1) que la función mul llamada y obtuvimos 6 (3 * 2). de manera similar, agregue (y luego mul y luego sub) (2)) imprimirá 5 (paso 1: 2 + 1 = 3, paso 2: 3 * 2 = 6, paso 3: 6 – 1 = 5).
- Pasar métodos a métodos: los métodos se pasan a otros métodos. Sintaxis:
function1(function2(parameter))
- Funciona igual que la función de redacción, pero funciona con los métodos def y val. Ejemplo 3:
Scala
// A Scala program to illustrate // passing methods to methods // Creating object object GFG { // Main method def main(args: Array[String]) { println(add(mul(2))) // Adding more methods println(add(mul(sub(2)))) } val add=(a: Int)=> { a + 1 } val mul=(a: Int)=> { a * 2 } val sub=(a: Int) =>{ a - 1 } }
- Producción :
5 3
- En el ejemplo anterior, en primer lugar llamamos a la función mul y obtuvimos 4 (2 * 2) y luego llamamos a la función add y obtuvimos 5 (4 + 1). de manera similar, add (mul (sub (2)) imprimirá 3 (paso 1: 2 – 1 = 1, paso 2: 1 * 2 = 2, paso 3: 2 + 1 = 3).