Teóricas
Aula 24 (T)
14/01/08 |
Permalink
O tipo abstracto Tabela: exemplos de
diferentes implementações destes tipos. Utilização do
tipo tabela na continuação do exemplo da
aula anterior, agora enriquecido com definições.
Aula 23 (T)
10/01/08 |
Permalink
Definição de um tipo algébrico para representação de
expressões aritméticas. Definição de funções para:
cálculo do valor de uma expresão, apresentação das
expressões em notação infixa e posfixa. Reconstrução
da expressão aritmética a partir da sua representação
em notação posfixa, com o auxilio de uma
stack.
Aula 22 (T)
07/01/08 |
Permalink
Tipos concretos de dados versos tipos abstractos de
dados.
Implementação de tipos abstractos de dados em Haskell usando módulos.
Os tipos abstractos Stack e Queue: exemplos de diferentes implementações destes tipso, e da sua utilização.
Implementação de tipos abstractos de dados em Haskell usando módulos.
Os tipos abstractos Stack e Queue: exemplos de diferentes implementações destes tipso, e da sua utilização.
Aula 21 (T)
20/12/07 |
Permalink
Módulos: os diferentes formas de exportação e
importação de entidades; exemplos.
Compilação de programas Haskell.
Compilação de programas Haskell.
Aula 20 (T)
17/12/07 |
Permalink
Funções de input/output do Prelude e do módulo IO.
Manipulação de ficheiros de texto. Exemplos de como carregar/guardar a informação de/para ficheiro. Vários exemplos.
O construtor de tipos Maybe como instância da classe Monad. Exemplo de utilização.
Manipulação de ficheiros de texto. Exemplos de como carregar/guardar a informação de/para ficheiro. Vários exemplos.
O construtor de tipos Maybe como instância da classe Monad. Exemplo de utilização.
Aula 19 (T)
13/12/07 |
Permalink
Declaração de tipos polimórficos com restrições nos
parâmetros.
A hierarquia de classes pré-definidas do Haskell.
Classes de constructores de tipos. A classe Functor e exemplos de instâncias desta classe.
Introdução ao conceito de mónade e apresentação da classe Monad.
O mónade IO; a notação do; funções IO do Prelude. Vários exemplos de funções com acções de input/output.
A hierarquia de classes pré-definidas do Haskell.
Classes de constructores de tipos. A classe Functor e exemplos de instâncias desta classe.
Introdução ao conceito de mónade e apresentação da classe Monad.
O mónade IO; a notação do; funções IO do Prelude. Vários exemplos de funções com acções de input/output.
Aula 18 (T)
10/12/07 |
Permalink
Apresentação de algumas classes pré-definidas do
Haskell: Ord, Show, Num, Enum e Read. Exemplos da
sua utilização.
Declaração do tipo Nat como instância de cada uma destas classes.
Declaração do tipo Nat como instância de cada uma destas classes.
Aula 17 (T)
06/12/07 |
Permalink
A classe Eq: exemplos de
instâncias, instâncias com restrições e instâncias
derivadas.
Extensão de classes. Os conceitos de herança e herança múltipla.
A classe Ord. Exemplos.
Extensão de classes. Os conceitos de herança e herança múltipla.
A classe Ord. Exemplos.
Aula 16 (T)
03/12/07 |
Permalink
Records em haskell: exemplos de utilização.
Polimorfismo paramétrico e polimorfismo ad hoc (sobrecarga de operadores). Tipos qualificados.
Os conceitos de classe e de instância de classe. O conceito de tipo principal.
Exemplos de classes. Definições por omissão de métodos. A classe Eq: exemplos de instâncias.
Polimorfismo paramétrico e polimorfismo ad hoc (sobrecarga de operadores). Tipos qualificados.
Os conceitos de classe e de instância de classe. O conceito de tipo principal.
Exemplos de classes. Definições por omissão de métodos. A classe Eq: exemplos de instâncias.
Aula 14 (T)
15/11/07 |
Permalink
O tipo de dados árvore binária. Diversas funções
recursivas sobre árvores binárias.
Travessias de árvores binárias: preorder, inorder e postorder.
Travessias de árvores binárias: preorder, inorder e postorder.
Aula 13 (T)
12/11/07 |
Permalink
Tipos algébricos: exemplos tipos recursivos e
polimórficos.
Análise de casos (expressões case).
O tipo (Maybe a) e exemplos da sua utilização.
Análise de casos (expressões case).
O tipo (Maybe a) e exemplos da sua utilização.
Aula 12 (T)
08/11/07 |
Permalink
Definição de novos tipos de dados. Tipos algébricos:
exemplos de tipos enumerados e de co-produtos.
Definição do tipo dos números naturais e de funções que manipulam este tipo de dados.
Definição do tipo dos números naturais e de funções que manipulam este tipo de dados.
Aula 11 (T)
05/11/07 |
Permalink
Funções de ordem superior. A função foldr e a
composição de funções. Vários exemplos da sua
utilização.
Aula 10 (T)
29/10/07 |
Permalink
Funções de ordem superior. As funções map e filter. Exemplos da
sua utilização.
Aula 9 (T)
25/10/07 |
Permalink
Algoritmos
de ordenação de listas. "Insertion sort" e "quick
sort" (várias versões).
Função de teste de ordenação.
Função de teste de ordenação.
Aula 8 (T)
22/10/07 |
Permalink
Definição e análise de funções recursivas sobre
listas.
A função zip e a função unzip.
A função zip e a função unzip.
Aula 7 (T)
18/10/07 |
Permalink
Definições locais. Operadores infixos. Funções com
guardas.
Os construtores atómicos do tipo lista. Definição de funções recursivas sobre listas.
Os construtores atómicos do tipo lista. Definição de funções recursivas sobre listas.
Aula 6 (T)
15/10/07 |
Permalink
Noção de padrão e concordância de padrões. Equações
como regras de redução.
Redução: lazy evaluation versus eager evaluation.
Definições multi-clausais de funções. Funções totais e funções parciais.
Tipos sinónimos.
Redução: lazy evaluation versus eager evaluation.
Definições multi-clausais de funções. Funções totais e funções parciais.
Tipos sinónimos.
Aula 4 (T)
08/10/07 |
Permalink
Definição de funções e a sua invocação: curried
versus uncurried.
O tipo polimórfico [a] e o tipo String. Algumas funções pré-definidas sobre estes tipos.
Definição de lista por compreensão.
O tipo polimórfico [a] e o tipo String. Algumas funções pré-definidas sobre estes tipos.
Definição de lista por compreensão.
Aula 3 (T)
04/10/07 |
Permalink
Inferência de tipos: noção de variável de tipo;
funções polimórficas.
A noção de módulo como componente de software, e a sua manipulação.
O módulo Prelude.
A noção de módulo como componente de software, e a sua manipulação.
O módulo Prelude.
Aula 2 (T)
01/10/07 |
Permalink
Conceitos fundamentais da programação em Haskell:
valores e expressões; tipos básicos e tipos
compostos.
Definições de funções simples. Equações como regras de cálculo. Preservação de tipos.
Definições de funções simples. Equações como regras de cálculo. Preservação de tipos.