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