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