es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Función de orden superior invocable en Python.

Tengo el siguiente código que me cuesta entender. Define 2 funciones y luego asigna la función a h, pero ¿qué son X e Y?


más información
def func_max(f: Callable[[int], int], g: Callable[[int], int])-> Callable[[int], int]:

que toma como parámetros las funciones f y g como se indica arriba. Devuelve la función h(x) que está definida en números enteros x y el valor de retorno de h en un número entero x es igual al máximo de m y n, donde m = f(x) y n = g(x).

def f(x):
  return x**2

def g(x):
  return 5*x

h = max_func(f,g)
X = h(3)
Y = h(6)

<p>El ejercicio pide armar lo siguiente en el orden correcto, lo intentaré pero no funciona, aquí va:</p>

<p>Por ejemplo, no entiendo cómo entra en juego la pequeña x ahora …
<code>
def max_func(f,g):
if f(x)> g(x): #Por ejemplo, no entiendo cómo entra en juego la pequeña x ahora …
return f(x)</code>
else:
return f(x)
def new<em>function (x:int): -> int
return new</em>function
“`

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El código que proporcionaste define dos funciones f y g. f toma un número entero x y devuelve el cuadrado de ese entero. g toma un número entero x y devuelve el producto de x y 5.

    max_func no está definido en el código que proporcionaste, pero según el segundo fragmento de código que proporcionaste, max_func toma dos funciones, f y g, y devuelve una nueva función h que toma un número entero x, aplica f(x) y g(x) a x, y devuelve el máximo de los dos.

    En el tercer fragmento de código que proporcionaste, max_func está definido incorrectamente. x no está definido como un parámetro de la función, por lo que utilizarlo dentro de la función dará como resultado un error. Además, la instrucción return en la cláusula else debería devolver g(x) en lugar de f(x).

    El último fragmento de código define una nueva función new_function que toma un número entero x y simplemente devuelve a sí misma. Esta función no se usa en ninguna otra parte del código que proporcionaste.

    Para responder a tu pregunta inicial, X e Y son simplemente ejemplos de cómo se utiliza la función h que devuelve max_func. X es el resultado de llamar a h con el número entero 3, y Y es el resultado de llamar a h con el número entero 6.

Comments are closed.