Este proyecto contiene materiales y ejercicios de programación funcional en el lenguaje Racket, organizados por trimestres. El objetivo es ayudar a los estudiantes a aprender y practicar conceptos clave de la programación funcional.
Para ejecutar los ejemplos y ejercicios de este repositorio, sigue estos pasos:
-
Clona el repositorio:
git clone https://github.com/ignacioalbornoz/functional-programming.git cd functional-programming
-
Instala Racket siguiendo las instrucciones de la página oficial.
Cada carpeta contiene archivos .rkt
que puedes ejecutar con Racket. A continuación se detallan los contenidos de cada carpeta:
Contiene ejercicios y ejemplos básicos de programación funcional en Racket.
- archivo1.rkt: Describe cómo definir funciones simples y aplicar recursión.
(define (suma x y) (+ x y))
- archivo2.rkt: Introduce el uso de listas y patrones de diseño funcional.
(define (longitud lst) (if (null? lst) 0 (+ 1 (longitud (cdr lst)))))
Contiene ejercicios y ejemplos avanzados de programación funcional, incluyendo conceptos de orden superior y composición.
- archivo3.rkt: Ejemplo de uso de funciones de orden superior.
(define (aplicar-dos-veces f x) (f (f x)))
- archivo4.rkt: Uso de cierres y funciones anónimas.
(define (generar-suma n) (lambda (x) (+ x n)))
Contiene proyectos y ejercicios finales integradores de programación funcional.
- archivo5.rkt: Implementación de una pequeña librería funcional.
(define (mapear f lst) (if (null? lst) '() (cons (f (car lst)) (mapear f (cdr lst)))))
- archivo6.rkt: Ejercicio de procesamiento de listas con funciones puras.
(define (filtrar pred lst) (cond [(null? lst) '()] [(pred (car lst)) (cons (car lst) (filtrar pred (cdr lst)))] [else (filtrar pred (cdr lst))]))