Functional Programming (Spring'96)
Programming Technology
Department of Computer Science
Programming Technology Topics
Functional Programming Faculty
Student Profile
- Faculty of Informatics
- Diplomatura/Licenciatura en Informática (3/5 years)
- third year, mandatory, three groups (3 theory, 3 practice)
Software
- Caml Light 0.7 (also CSL)
Basic Bibliography
- Leroy. The Caml Light System.
INRIA. (English)
- Mauny. Functional Programming using Caml Light.
INRIA. (English)
- Weis and Leroy. Le Langage Caml. InterEditions, 1993. (French)
- Mauny and Cousineau. Approche Fonctionelle de la Programation. Ediscience International, 1995. (French)
- Paulson. ML for the Working Programmer. Cambridge University Press, 1991. (English)
- Wikstrom. Functional Programming using Standard ML. Prentice Hall International, 1987. (English)
Contents
- Introduction to Functional Programming
- Values, Expressions and Types. Basic Types. Basic Operators. Conditional Expression. Introduction to Type Inference.
- Local and Global Definitions.
- Functional Types and Values. Anonymous Functions. Function Application. Evaluation Strategies.
High-Order Functions. Recursive Functions. Exceptions. Tail Recursion.
- The Notion of Referential Transparency.
- Product Type. Introduction to Pattern-Matching.
- Polymorphism
- Definition of Polymorphism. Polymorphic Functions.
- Type Inference in presence of Polymorphism.
- Function Composition. Currying/Uncurrying. Abstraction.
- Lists
- Definition. List Constructors. Functions on Lists and Pattern-Matching. Recursive Functions on Lists.
- Abstraction as a Programming Tool: map, fold, ...
- User-Defined Datatypes
- Definition. Sum types. Polymorphic types. Recursive Types.
- Data Structures: Lists, Trees, ... Abstraction.
- Abstract Datatypes vs Concrete Datatypes. Module System.
- Imperative Features in Functional Languages
- Functional Language I/O.
- Mutable Datatypes.
- Application and Implementation Issues
- Syntactic and Lexical Analysis.
- Automatic Memory Management: Garbage Collector.
- Low-Level Data Representation. Interaction with Low-Level Languages and OS.
Víctor M. Gulías Fernández /