Programa O Funcional Conceitos
Para evitar efeitos colaterais e facilitar a programação concorrente.
2. O que são funções e valores de primeira classe?
Uma função pode ser passada como parâmetro
Uma função pode retornar outra função como valor
Uma função pode ser atribuída a uma variável como valor.
3. Quais as diferenças entre métodos e funções?
Métodos:
O bloco de código pertence obrigatoriamente a uma classe;
Só pode ser invocado no contexto da própria classe.
Funções:
Não é amarrada a nenhuma classe ou objeto;
Pode ser invocada em qualquer parte do programa.
4. Explique o conceito de inferência de tipos em linguagens funcional
É quando não se necessita declarar o tipo da variável, pois o compilador deduz através do valor que lhe é atribuído.
5. O que são funções de alta ordem?
Funções de primeira classe que permitem a passagem de outras funções como parâmetro ou retornam uma função.
6. Em programação funcional, explique por que a recursividade de funções deve ser utilizada no lugar de sua versão iterativa
Na versão iterativa há a violação da mutação de estado (precisa haver alteração no valor da variável)
7. Explique a diferença básica entre os estilos de programação declarativa e imperativa
Na declarativa: não há mutação de estado.
Na imperativa: variáveis mutáveis.
8. Mostre com um exemplo como Scala aplica o conceito de inferência de tipo var x = 8;
9. Em Scala, mostre com um exemplo como é possível associar uma variável a um valor inexistente. var x: Unit = () ou var x = ()
10. Explique, com um exemplo, a estrutura de uma classe em Scala
Object SalaDeAula{ class Aluno{
//atributos
}
}
11. Como podemos garantir em Scala o princípio do encapsulamento de objeto?
Usando a palavra reservada private.