Funciones de orden superior en Scala

Una función se llama función de orden superior si contiene otras funciones como parámetro o devuelve una función como salida, es decir, las funciones que operan con otras funciones se conocen como funciones de orden superior. Vale la pena saber que esta función de orden superior también es aplicable para funciones y métodos que toman funciones como parámetro o devuelven una función como resultado. Esto es practicable ya que el compilador de Scala permite forzar métodos en funciones.
Algunos puntos importantes sobre las funciones de orden superior:

  • Las funciones de orden superior son posibles, ya que el lenguaje de programación Scala actúa hacia las funciones como valores de primera clase, lo que implica que, de forma análoga a otros valores, las funciones pueden incluso pasarse como parámetro o devolverse como salida, lo que es útil para proporcionando un método ajustable para escribir códigos.
  • Es beneficioso para producir una composición de funciones donde las funciones pueden formarse a partir de otras funciones. La composición de funciones es el método de composición donde una función muestra la utilización de dos funciones compuestas.
  • También es constructivo en la creación de funciones lambda o funciones anónimas. Las funciones anónimas son las funciones que no tienen nombre, aunque actúan como una función.
  • Incluso se utiliza para minimizar las líneas de código redundantes de un programa.

Ahora, veamos algunos ejemplos.

  • Ejemplo :

    // Scala program of higher order
    // function
      
    // Creating object
    object GfG 
    {
          
        // Main method
        def main(args: Array[String]) 
        {
            // Displays output by assigning 
            // value and calling functions
            println(apply(format, 32))
          
        }
          
        // A higher order function
        def apply(x: Double => String, y: Double) = x(y)
      
        // Defining a function for
        // the format and using a
        // method toString()
        def format[R](z: R) = "{" + z.toString() + "}"
          
    }
    Producción:

    {32.0}
    

    Aquí, la función de aplicación contiene otra función x con un valor y y aplica la función x a y.

  • Ejemplo :

    // Scala program of higher order
    // function
      
    // Creating object
    object GfG 
    {
        // Main method
        def main(args: Array[String]) 
        {
          
            // Creating a list of numbers
            val num = List(7, 8, 9)
          
            // Defining a method
            def multiplyValue = (y: Int) => y * 3
          
            // Creating a higher order function 
            // that is assigned to the variable
            val result = num.map(y => multiplyValue(y))
          
            // Displays output
            println("Multiplied List is: " + result)
        }
    }
    Producción:

    Multiplied List is: List(21, 24, 27)
    

    Aquí, el mapa es una función que toma otra función, es decir, (y => multiplicarValor(y)) como parámetro, por lo que es una función de orden superior.

Publicación traducida automáticamente

Artículo escrito por nidhi1352singh 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 *