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