Escala | Composición de funciones

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).

Publicación traducida automáticamente

Artículo escrito por Patabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *