Código |
14348
|
Ano |
1
|
Semestre |
S2
|
Créditos ECTS |
6
|
Carga Horária |
PL(30H)/T(30H)
|
Área Científica |
Informática
|
Objectivos de Aprendizagem |
Os objectivos gerais de aprendizagem são os seguintes • Compreender os fundamentos da programação funcional na resolução de problemas computacionais. • Compreender as diferenças entre os paradigmas de programação imperativa e funcional. • Compreender os conceitos básicos do paradigma funcional usando uma linguagem funcional. • Desenvolver competências de programação funcional através de programas que envolvam tipos de dados algébricos. • Desenvolver competências de programação funcional utilizando técnicas de programação dinâmica ou retrocesso.
|
Conteúdos programáticos |
• Noções básicas de OCaml (bindings, condicionais, registos, funções) • Funções recursivas e tipos recursivos • Benefícios da não mutação • Tipos de dados algébricos, correspondência de padrões • Recursividade terminal • Funções de ordem superior; fechos • Âmbito lexical • Currying • Açúcar sintático • Equivalência e efeitos • Polimorfismo paramétrico • Inferência de tipos • Tipos abstractos e módulos
|
Bibliografia principal |
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.
|
Língua |
Português
|