Skip to content

Instantly share code, notes, and snippets.

@rodrwan
Created October 26, 2017 20:55
Show Gist options
  • Save rodrwan/c6783cce7ca351e0f330a42a64170c02 to your computer and use it in GitHub Desktop.
Save rodrwan/c6783cce7ca351e0f330a42a64170c02 to your computer and use it in GitHub Desktop.

Ejercicios programación funcional.

1.- Dado un arreglo de usuarios, determine:

  • Arreglo con emails de los usuarios que contengan la palabra “gmail”
  • Arreglo con nombres de los usuarios que hayan nacido un día impar. (Formato fecha “DD/MM/YYYY”).

2.- Dado un arreglo de alumnos, donde cada alumno tiene un nombre y un arreglo de notas, determine lo siguiente:

  • Crear un método que muestre a cada alumno con su respectivo promedio.
  • Muestre los nombres de los alumnos que tengan promedio sobre 4.
  • Muestre los nombres de los alumnos que tengan promedio sobre 5.
  • Muestre los nombres de los alumnos que tengan promedio sobre 6.

3.- Definir la función palíndromo tal que (palíndromo xs) se verifica si xs es un palíndromo; es decir, es lo mismo leer xs de izquierda a derecha que de derecha a izquierda.

Por ejemplo,

palíndromo [3,2,5,2,3] == True palindromo [3,2,5,6,2,3] == False

4.- Invierta el string “Laboratoria Rocks”

Debe presentar su solución en la forma clásica y su solución utilizando programación funcional.

5.- Tenemos un número de conejos y cada uno, tiene 2 orejas. Queremos calcular el numero total de orejas dado el número de conejos (no se puede usar multiplicación).

bunnyEars(0) → 0 bunnyEars(1) → 2 bunnyEars(2) → 4

Ejercicios de recursividad.

1.- Programar un algoritmo recursivo que calcule el factorial de un número.

2.- Programar un algoritmo recursivo que calcule un número de la serie fibonacci.

3.- Programar un algoritmo recursivo que permita hacer la división por restas sucesivas.

4.- Programar un algoritmo recursivo que permita invertir un número. Ejemplo: Entrada:123 Salida:321

5.- Programar un algoritmo recursivo que permita sumar los dígitos de un número.Ejemplo: Entrada:123 -> Resultado:6

6.- Programar un algoritmo recursivo que permita hacer una multiplicación, utilizando el método Ruso. Para mas información: aquí.

7.- Programar un algoritmo recursivo que permita sumar los elementos de un arreglo.

Problemas de asincronia

Dado el siguiente codigo:

function asyncSqrt(value, callback) {
    console.log('START execution with value =', value);
    setTimeout(function() {
        callback(value, value * value);
    }, 0 | Math.random() * 100);
}
 
let max = 10;
let cnt = 0;
for (let l = 0; l < max; l++) {
    asyncSqrt(l, function(value, result) {
        console.log('END execution with value =', value, 'and result =', result);
        if (++cnt === max) {
            console.log('COMPLETED');
        }
    });
}

Transforme este código de tal forma el for loop devuelva los resultados de forma sincrona.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment