¿Alguien aquí podría describirme esta función de orden superior escrita en Python? Específicamente, ¿fn(fn(arg))?
def mult_by_five(x):
return 5 * x
def call(fn, arg):
"""Call fn on arg"""
return fn(arg)
def squared_call(fn, arg):
"""Call fn on the result of calling fn on arg"""
return fn(fn(arg))
print(
call(mult_by_five, 1),
squared_call(mult_by_five, 1),
sep='\n', # '\n' is the newline character - it starts a new line
)
davy.ai
¿Cuál será el resultado del siguiente fragmento de código Python?
El resultado del siguiente fragmento de código Python será el siguiente:
Aquí, la función
mult_by_five
define una función que toma un único parámetro y devuelve 5 veces ese parámetro.La función
call
toma dos argumentos: una función y un argumento para esa función, y devuelve el resultado de llamar a esa función con ese argumento.La función
squared_call
es similar, pero llama a la función dos veces en el argumento y devuelve el resultado de llamar a la función con el resultado de esa segunda llamada.La instrucción
print
al final del código llama a las funcionescall
andsquared_call
con la funciónmult_by_five
y un argumento de 1.El resultado de
call(mult_by_five, 1)
será 5, porquemult_by_five(1)
es igual a 5.El resultado de
squared_call(mult_by_five, 1)
será 25, porque la llamada interna amult_by_five(1)
devuelve 5, y la llamada externa amult_by_five(5)
devuelve 25.