Saltar a contenido

Cierre del curso

El curso abordó los siguientes temas

Programación funcional

  1. Evaluación: nombre y valor, por nombre: se calculan los datos cuando los llamamos, y por valor se hace forma inmediata (revisar el ejemplo de loop)
  2. Funciones de orden superior: Funciones que reciben funciones o retornan funciones
  3. Currificación: Es hacer que las funciones sea operaciones binarias, recordar que una función siempre recibe el this que es la referencia de la instancia, al hacer que solo recibe un solo parametro podemos a.suma(b) —> a suma b
  4. Uso de funciones orden superior: map, filter, reduce, foldLeft, foldRight
  5. Reconocimiento de patrones, esto nos permite evitar los condicionales y nos permite identificar como viene un dato, ejemplo x::xs x→ es la cabeza, xs→ cola
  6. Reconocimiento de patrones con Clases (personalizado) trait conjunto, case class vacio extends conjunto, case class noVacio extends conjunto
x match {
    case vacio() => ...
    case noVacio(x) => ...
}
  1. Abstraccion de orden superior: Ejemplo de Racional, podemos representar un número a través de una clase que nos ofrece las funciones, modificamos tostring() para obtener representación concreta
  2. Uso de las coleciones y las funciones: Todo este temario en diferentes colecciones

Concurrencia

  1. Paralelismo de tareas: A través de las funciones. usando estrategias de dividir los datos hasta un umbreal y usando arboles como estructura paralela
  2. Bechmarking: Medición del rendimiento, warmer: Hay que esperar que la JVM esté en estado estable
  3. Paralelismo de datos: A través de las colecciones

Reflexión final

¿Que busco con este curso? Que el estudiante tenga unas herramientas para resolver problemas

¿Cuales son los minimos del curso? Entender que la programación funcional es un paradigma para resolver problemas: variables no mutables, funciones de orden superior, reconocimiento de patrones. Concurrencia: Entender que podemos usar los procesadores para dividir el procesamiento: Datos o tareas, pero hay limitaciones y no siempre se obtiene una mejora.

¿Valio la pena ver este curso? —> ¿mejore mi abstracción para resolver problemas? Lenguaje de programación: herramienta, paradigma: Es como usar los lenguajes