Parte 1: Programación Funcional Historia de la Programación Funcional Fundamentos Funciones puras Evaluación perezosa Inmutabilidad Composición de funciones Funciones de orden superior Funciones lambda Acumuladores Tipos de recursión Generativa Estructural Haskell Historia de Haskell Ejemplos en Haskell Introducción a Haskell Instalación y configuración del entorno Sintaxis básica Map, Filter, Foldl, Foldr en listas Comprensión de listas Ejercicios prácticos Factorial Números de Fibonacci Manipulación de listas Verificar si un elemento está en una lista Longitud de una lista Concatenar dos listas Invertir una lista Duplicar elementos de una lista Quitar el último elemento de una lista Quitar los dos últimos elementos de una lista Borrar un elemento de una lista Unión e intersección de listas Algoritmos de ordenación Bubble Sort Quick Sort Merge Sort Problemas de lógica Torres de Hanoi El mono y la banana 8 reinas Ruta de vuelos Racket Historia de los lenguajes de tipo Lisp Ejemplos en Racket Introducción a Racket Instalación y configuración del entorno Sintaxis básica Map, Filter, Foldl, Foldr en listas Ejercicios prácticos Factorial Números de Fibonacci Manipulación de listas Verificar si un elemento está en una lista Longitud de una lista Concatenar dos listas Invertir una lista Duplicar elementos de una lista Quitar el último elemento de una lista Quitar los dos últimos elementos de una lista Borrar un elemento de una lista Unión e intersección de listas Algoritmos de ordenación Bubble Sort Quick Sort Merge Sort Problemas de lógica Torres de Hanoi El mono y la banana 8 reinas Ruta de vuelos Parte 2: Programación Lógica Breve Historia de la Programación Lógica Lógica Proposicional Básica Introducción a la lógica proposicional Conectivos lógicos Negación Conjunción Disyunción Inferencias Deductivas Inductivas Abductivas Ejemplos en Prolog Introducción a Prolog Sintaxis Declaración de hechos y reglas Unificación Ejercicios prácticos Árbol genealógico Manipulación de listas [[Verificar si un elemento está en una lista]] [[Longitud de una lista]] [[Concatenar dos listas]] [[Invertir una lista]] [[Duplicar elementos de una lista]] [[Quitar el último elemento de una lista]] [[Quitar los dos últimos elementos de una lista]] [[Borrar un elemento de una lista]] [[Unión e intersección de listas]] Algoritmos de ordenación Bubble Sort Quick Sort Merge Sort Problemas de lógica Torres de Hanoi El mono y la banana 8 reinas Ruta de vuelos Parte 3: Programación Orientada a Objetos Apéndices Bibliografía Ejercicios en C Factorial Números de Fibonacci Manipulación de listas Verificar si un elemento está en una lista Longitud de una lista Concatenar dos listas Invertir una lista Duplicar elementos de una lista Quitar el último elemento de una lista Quitar los dos últimos elementos de una lista Borrar un elemento de una lista Unión e intersección de listas Algoritmos de ordenación Bubble Sort Quick Sort Merge Sort Problemas de lógica El mono y la banana 8 reinas Ruta de vuelos