File tree Expand file tree Collapse file tree 2 files changed +94
-0
lines changed
06 - RECURSIVIDAD/typescript
24 - DECORADORES/javascript Expand file tree Collapse file tree 2 files changed +94
-0
lines changed Original file line number Diff line number Diff line change
1
+ ( ( ) => {
2
+ /*
3
+ * EJERCICIO:
4
+ * Entiende el concepto de recursividad creando una función recursiva que imprima
5
+ * números del 100 al 0.
6
+ */
7
+
8
+ const printNumbers = ( a : number ) : void => {
9
+ if ( a < 0 ) return
10
+ console . log ( a )
11
+ printNumbers ( a - 1 )
12
+ }
13
+
14
+ printNumbers ( 100 )
15
+
16
+ /*
17
+ * DIFICULTAD EXTRA (opcional):
18
+ * Utiliza el concepto de recursividad para:
19
+ * - Calcular el factorial de un número concreto (la función recibe ese número).
20
+ * - Calcular el valor de un elemento concreto (según su posición) en la
21
+ * sucesión de Fibonacci (la función recibe la posición).
22
+ */
23
+
24
+ const factorial = ( n : number ) : number => {
25
+ if ( n < 1 ) return 1
26
+ return n * factorial ( n - 1 )
27
+ }
28
+
29
+ console . log ( factorial ( 8 ) )
30
+
31
+ const fibonacci = ( position : number ) : number => {
32
+ if ( position === 0 ) {
33
+ return 0
34
+ }
35
+ if ( position === 1 ) {
36
+ return 1
37
+ }
38
+ return fibonacci ( position - 1 ) + fibonacci ( position - 2 )
39
+ }
40
+ console . log ( fibonacci ( 7 ) )
41
+ } ) ( )
Original file line number Diff line number Diff line change
1
+ /*
2
+ * EJERCICIO:
3
+ * Explora el concepto de "decorador" y muestra cómo crearlo
4
+ * con un ejemplo genérico.
5
+ */
6
+
7
+ function withprintResult ( func ) {
8
+ return function ( ...parameters ) {
9
+ console . log ( "Parámetros:" , parameters )
10
+ const result = func ( ...parameters )
11
+ console . log ( "Resultado:" , result )
12
+ return result
13
+ }
14
+ }
15
+
16
+ function sum ( a , b ) {
17
+ return a + b
18
+ }
19
+
20
+ function multiply ( a , b ) {
21
+ return a * b
22
+ }
23
+
24
+ const sumDecorator = withprintResult ( sum )
25
+ const multiplyDecorator = withprintResult ( multiply )
26
+
27
+ sumDecorator ( 2 , 1 )
28
+ multiplyDecorator ( 2 , 3 )
29
+
30
+ /*
31
+ * DIFICULTAD EXTRA (opcional):
32
+ * Crea un decorador que sea capaz de contabilizar cuántas veces
33
+ * se ha llamado a una función y aplícalo a una función de tu elección.
34
+ */
35
+
36
+ function counterDecorator ( func ) {
37
+ let counter = 0 ;
38
+ return function ( ...parameters ) {
39
+ counter ++ ;
40
+ console . log ( `La función ha sido llamada ${ counter } veces` )
41
+ return func ( ...parameters )
42
+ } ;
43
+ }
44
+
45
+ function firstFunction ( ) {
46
+ console . log ( "Función ejecutada" )
47
+ }
48
+
49
+ const decoratedFunction = counterDecorator ( firstFunction )
50
+
51
+ decoratedFunction ( )
52
+ decoratedFunction ( )
53
+ decoratedFunction ( )
You can’t perform that action at this time.
0 commit comments