Exercicios programação Funcional
Os exerc´ ıcios que seguem foram gentilmente cedidos pelo professor Marcelo Rodrigues de Sousa.
Ex. 1 — Construa uma fun¸ao denominada hora_v´lida em F# que retorna verdadeiro c˜ a se uma tripla do tipo (h, m, s) (onde h, m e s s˜o n´meros inteiros) representa uma hora a u v´lida de um rel´gio, caso contr´rio retorna falso. Exemplo: a o a §
¦
> hora_v a lida (10 , 20 ,36) ;;
´
true
> hora_v a lida (25 , 20 ,36) ;;
´
false
> hora_v a lida ( 0 , 20 ,66) ;;
´
false
¥
Ex. 2 — Escreva uma fun¸ao denominada converte_hora em F# para converter de um c˜ valor se uma tripla do tipo (h, m, s) (onde h, m e s s˜o n´meros inteiros) representa uma a u hora v´lida, para o n´mero de segundos que j´ se passaram at´ essa hora no dia. a u a e
§
¦
> converte_hora (0 ,10 ,5) ;;
65
// ou seja passaram 65 segundos de 0 hora at e 10 min 5 s .
´
Ex. 3 — Construa uma fun¸˜o em F# que determina o somat´rio dos elementos primos ca o de uma lista. O nome da fun¸˜o deve ser somatorioPrimos e como exemplo: ca §
¦
¤
> somatorioPrimos [19; 15; 17; 21];;
36
Ex. 4 — Construa uma fun¸ao em F# que verifica se em uma lista n˜o existe m´ltipla c˜ a u ocorrˆncia de algum elemento? O nome da fun¸ao deve ser naoOcorreMultiplo e como e c˜ exemplo: 1
¤
¥
¤
¥
§
¦
¤
> naoOcorreMultiplo [1;2;1];; // o 1 aparece duas vezes false > naoOcorreMultiplo [1;2;3];; true Ex. 5 — Construa uma fun¸˜o em F# que realiza a dele¸ao de um todos as ocorrˆncias de ca c˜ e um determinado elemento em uma lista. O nome da fun¸ao deve ser deletaTodos e como c˜ exemplo:
§
¦
> deletaTodos 1 [1; 2; 1; 2; 3; 1];;
[2; 2; 3]
Ex. 6 — Construa uma fun¸ao em F# que determina o n-´simo elemento em uma lista