1
+ """ /*
2
+ * EJERCICIO:
3
+ * Explora el concepto de callback en tu lenguaje creando un ejemplo
4
+ * simple (a tu elección) que muestre su funcionamiento.
5
+ *
6
+ * DIFICULTAD EXTRA (opcional):
7
+ * Crea un simulador de pedidos de un restaurante utilizando callbacks.
8
+ * Estará formado por una función que procesa pedidos.
9
+ * Debe aceptar el nombre del plato, una callback de confirmación, una
10
+ * de listo y otra de entrega.
11
+ * - Debe imprimir un confirmación cuando empiece el procesamiento.
12
+ * - Debe simular un tiempo aleatorio entre 1 a 10 segundos entre
13
+ * procesos.
14
+ * - Debe invocar a cada callback siguiendo un orden de procesado.
15
+ * - Debe notificar que el plato está listo o ha sido entregado.
16
+ */ """
17
+
18
+ import random
19
+ import time
20
+
21
+ #EJERCICIO
22
+
23
+ def greeting_process (name : str , callback ):
24
+ callback (name )
25
+
26
+ def greet_callback (name : str ):
27
+ print (f"Hola { name } ." )
28
+
29
+ greeting_process ("David" , greet_callback )
30
+
31
+
32
+ #DIFICULTAD EXTRA
33
+
34
+ def order (dish_name : str , confirmation_callback , ready_callback , delivered_callback ):
35
+ dish_name = input ("¿Qué quieres pedir?: " ).lower ()
36
+ confirmation_callback (dish_name )
37
+ time .sleep (random .randint (1 , 10 ))
38
+ ready_callback (dish_name )
39
+ time .sleep (random .randint (1 , 10 ))
40
+ delivered_callback (dish_name )
41
+
42
+ def order_confirmation (dish_name : str ):
43
+ print (f"Tu pedido { dish_name .lower ()} ha sido confirmado." )
44
+
45
+
46
+ def order_ready (dish_name : str ):
47
+ print (f"Tu pedido { dish_name .lower ()} está listo." )
48
+
49
+ def order_delivered (dish_name : str ):
50
+ print (f"Tu pedido { dish_name .lower ()} ha sido entregado." )
51
+
52
+ order ("" , order_confirmation , order_ready , order_delivered )
0 commit comments