5.13.4.2 Programación Funcional (12 horas) [Habilidades AG-C09,AG-C12]

Referencias Bibliográficas: [Stroustrup, 2013,Josuttis, 2019,Vandevoorde et al., 2017b]

Temas

  1. Expresiones lambda y evaluación:
    1. Enlace (binding) de variables y reglas de ámbito (scope).
    2. Paso de parámetros.
    3. Expresiones lambda anidadas y orden de reducción.
  2. Clausuras (closures) de funciones (funciones que usan variables en el entorno léxico circundante):
    1. Significado y definición básica: crear clausuras en tiempo de ejecución capturando el entorno.
    2. Idiomas canónicos: devoluciones de llamada (callbacks), argumentos para iteradores, código reutilizable mediante argumentos de funciones.
    3. Usar una clausura para encapsular datos en su entorno.
    4. Evaluación diferida (lazy) vs ansiosa (eager).
  3. Técnicas de metaprogramación con plantillas.
  4. SFINAE (Fallo de Sustitución No es un Error).
  5. Reenvío perfecto y referencias universales.
  6. Plantillas variádicas.
  7. Cómputo en tiempo de compilación con constexpr.

Aprendizaje esperado (Learning Outcomes)

  1. Desarrollar funciones útiles que tomen y devuelvan otras funciones [Usar]
  2. Interpretar correctamente las variables y el ámbito léxico en un programa que usa clausuras de funciones [Evaluar]
  3. Usar mecanismos de encapsulación funcional como clausuras e interfaces modulares [Usar]
  4. Aplicar SFINAE para selección de plantillas y resolución de sobrecarga [Usar].
  5. Implementar reenvío perfecto para paso eficiente de argumentos [Usar].

Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM