1+ # #21 CALLBACKS
2+ """
3+ * EJERCICIO:
4+ * Explora el concepto de callback en tu lenguaje creando un ejemplo
5+ * simple (a tu elección) que muestre su funcionamiento.
6+ """
7+
8+
9+
10+ def saludar (name ):
11+ return (f"Hola { name } " )
12+
13+ def ejecutar_saludo (saluda , name ):
14+ return saluda (name )
15+
16+ print (ejecutar_saludo (saludar ,"Fede" ))
17+
18+ num = (8 ,7 )
19+
20+ def multiplicar (num ):
21+ return num [0 ]* num [1 ]
22+
23+ def multiplicados (mult ,n ):
24+ return mult (n )
25+
26+ print (multiplicados (multiplicar ,num ))
27+
28+
29+ """
30+ * DIFICULTAD EXTRA (opcional):
31+ * Crea un simulador de pedidos de un restaurante utilizando callbacks.
32+ * Estará formado por una función que procesa pedidos.
33+ * Debe aceptar el nombre del plato, una callback de confirmación, una
34+ * de listo y otra de entrega.
35+ * - Debe imprimir un confirmación cuando empiece el procesamiento.
36+ * - Debe simular un tiempo aleatorio entre 1 a 10 segundos entre
37+ * procesos.
38+ * - Debe invocar a cada callback siguiendo un orden de procesado.
39+ * - Debe notificar que el plato está listo o ha sido entregado.
40+ """
41+
42+ import time
43+ import random
44+ import threading
45+
46+ def pedidos (plato ,confirmado ,listo ,entregado ):
47+ def ejecutar ():
48+ confirmado (plato )
49+ time .sleep (random .randint (1 ,10 ))
50+ listo (plato )
51+ time .sleep (random .randint (1 ,10 ))
52+ entregado (plato )
53+ threading .Thread (target = ejecutar ).start ()
54+
55+
56+ def confirmado (plato ):
57+ print (f"El pedido de { plato } ha sido confirmado" )
58+
59+ def listo (plato ):
60+ print (f"El pedido de { plato } está listo" )
61+
62+ def entregado (plato ):
63+ print (f"El pedido de { plato } ha sido entregado" )
64+
65+ pedidos ("Pizza" ,confirmado ,listo ,entregado )
66+ pedidos ("Hamburguesa" ,confirmado ,listo ,entregado )
67+ pedidos ("Empanadas" ,confirmado ,listo ,entregado )
0 commit comments