You need to activate javascript for this site.
Menu Conteúdo Rodapé
  1. Home
  2. Courses
  3. Computer Science and Engineering
  4. Functional Programming

Functional Programming

Code 14348
Year 2
Semester S2
ECTS Credits 6
Workload PL(30H)/T(30H)
Scientific area Informatics
Entry requirements N/A
Learning outcomes The general learning objectives are
• Understand the fundamentals of functional programming for solving computational problems.
• Understand the differences between the imperative and functional programming paradigms.
• Understand the basic concepts of the functional paradigm using a functional language.
• Develop functional programming skills through programs that use algebraic data types.
• Develop functional programming skills using dynamic programming or backtracking techniques.
Syllabus • OCaml basics (bindings, conditionals, records, functions)
• Recursive functions and recursive types
• Benefits of immutability
• Algebraic data types, pattern matching
• Terminal recursion
• Higher-order functions; closures
• Lexical scope
• Currying
• Syntactic sugar
• Equivalence and effects
• Parametric polymorphism
• Type inference
• Abstract types and modules
Main Bibliography Jean-Christophe Filliâtre, Sylvain Conchon. Apprendre à programmer avec OCaml, Eyrolle, 2014. ISBN-13: 978-2212136784

Emmanuel Chailloux, Pascal Manoury, and Bruno Pagano. Developing Applications With Objective Caml. O'Reilly France, 2002. ISBN-13: 978-2841771219

Anil Madhavapeddy and Yaron Minsky. Real World OCaml: Functional Programming for the Masses. 2nd ed. Cambridge: Cambridge University Press, 2022. ISBN-13: 978-1009129220.

John Whitington. OCaml From the Very Beginning. Coherent Press, 2013. ISBN-13: 978-0957671102.

Michael R. Clarkson. OCaml Programming: Correct + Efficient + Beautiful. Self-Publishing, 2024.
Language Portuguese. Tutorial support is available in English.
Last updated on: 2025-06-12

The cookies used in this website do not collect personal information that helps to identify you. By continuing you agree to the cookie policy.