====== CAES005 - Introdução à Programação Funcional ====== **Turma 2019** **Carga horária:** 45 horas-aula (3 créditos) **Ementa:** Programação Funcional: Conceitos e Principais Linguagens. Funções: funções como cidadãos de primeira classe, funções nomeadas e funções anônimas, currying, módulos. Casamento de Padrões. Estruturas de dados e imutabilidade. Recursão. Processamento de coleções. Lazy evaluation. Fluxo de controle. Implementação de projetos envolvendo uma linguagem funcional. Visão geral de linguagens funcionais para concorrência. **Bibliografia:** * Thomas, Dave. Programming Elixir 1.6: Functional |> Concurrent |> Pragmatic |> Fun. Pragmatic Programmers, 2018. * Almeida, Ulisses. Learn Functional Programming with Elixir: New Foundations for a New World. Pragmatic Programmers, 2018. * Davi, Tiago. Elixir: Do zero à concorrência. Casa do Código, 2017. * SEBESTA, R. W. Conceitos de linguagens de programação. [s. l.], 2018. Disponível em: . Acesso em: 5 jul. 2019. * Artigos científicos e literatura cinza (posts em blogs, vídeos, etc.) ===== Links ===== [[https://github.com/adolfont/introducao-a-programacao-funcional/blob/master/README.md]] [[https://speakerdeck.com/ulissesalmeida/o-essencial-da-programacao-funcional-em-elixir-1-dot-2?slide=24|O Essencial da Programação Funcional em Elixir]] [[http://ll2.ai.mit.edu/talks/armstrong.pdf|Concurrency Oriented Programming in Erlang, Joe Armstrong]] [[http://www.cs.nott.ac.uk/~pszgmh/pgp.html|Functional Programming - Graham Hutton, University of Nottingham]]