Exercícios de CI062/CI851a - Técnicas alternativas de programação

1) Explique qual é a implicação principal de considerar funções como entidades de primeira classe.

2) Crie um conjunto de funções que:
a) realizem as 4 operações aritméticas de base: adição, subtração, multiplicação e divisão.
b) uma função genérica que recebe estas 4 funções como parâmetro e que execute uma soma dos resultados dessas funções. As 4 funções podem ser executadas em qualquer ordem.
c) Dê dois exemplos diferentes de aplicação da função genérica.

3) Crie uma função que receba como parâmetro uma lista de caracteres com e que retorne:
- 1 se todos os caracteres forem minúsculos (usar função isUpperCase()).
- 2 se a lista possui quatro elementos e o primeiro e o quarto caracteres forem “a” e “d”, respectivamente.
- 3 caso contrário

4) Crie uma função que recebe como parâmetro uma lista de salários e que retorne apenas os salários menores que 5000.

5) Transforme a função soma3( a, b, c : Int) : Int = a +b +c em funções com parâmetros únicos (currying). Implemente também uma chamada da função.

6) Crie uma função que mapeie 4 inteiros em um único elemento formado pelos 4 inteiros, sendo que cada inteiro deve ser incrementado de 1.