On this page:
Pre  PLAI:   Scheme y Programación Funcional

PrePLAI: Scheme y Programación Funcional

Éric Tanter

last updated: Thursday, September 25th, 2014

Copyright © 2011-2013 by Éric Tanter

The electronic version of this work is licensed under the Creative Commons Attribution Non-Commercial No Derivatives License

Este mini-curso tiene como objetivo entregarle las nociones básicas para programar en Scheme siguiendo buenas prácticas de programación funcional. Esta materia es indispensable para luego poder seguir el curso de lenguajes, que sigue el libro PLAI de Shriram Krishnamurthi.

Se usa el lenguaje Racket, un super Scheme con variadas y poderosas librerías, y su ambiente de desarrollo, DrRacket.

Agradezco comentarios, sugerencias y correcciones; ¡no dude en contactarme por email!

    1 Elementos Básicos

      1.1 Tipos primitivos

      1.2 Usar funciones predefinidas

      1.3 Condicionales

      1.4 Definir identificadores

      1.5 Definir funciones

      1.6 ¿Dónde encuentro información sobre...?

    2 Estructuras de Datos

      2.1 Pares

      2.2 Listas

      2.3 Vectores

    3 Programar con Funciones

      3.1 Funciones parametrizadas por funciones

      3.2 Funciones anónimas

      3.3 Funciones que producen funciones

    4 Definir Funciones

      4.1 Metodología general

      4.2 Procesar estructuras recursivas

        4.2.1 Inducción

        4.2.2 Inducción y programación recursiva

        4.2.3 Inducción estructural y metodología

        4.2.4 Pattern matching sobre estructuras recursivas

      4.3 Ejemplos

        4.3.1 Procesar listas

        4.3.2 Procesar árboles binarios

        4.3.3 Procesar listas anidadas

    5 El Lenguaje PLAY

      5.1 Definiendo Identificadores

      5.2 Tests

      5.3 Estructuras de datos

      5.4 Un último ejemplo

Agradecimientos: Gracias a los miembros del laboratorio PLEIAD y del curso de Lenguajes de Programación de la Universidad de Chile por sus correcciones y sugerencias, en particular a Javiera Born, Ismael Figueroa y Rodolfo Toledo.