7. EXEMPLOS DE PROGRAMAS
Logo abaixo são apresentados alguns exemplos
de funções que realizam algum tipo de operação com listas.
- Função que recebe uma lista como
parâmetro e retorna o maior elemento da lista.
fun maior(L) = if tl(L) = []
then hd(L)
else if hd(L) > maior(tl(L))
then hd(L)
else maior(tl(L));
val lista = [3, 8, 4, 9, 0, 2, 1];
maior (lista);
- Função que recebe uma lista como
parâmetro e retorna lista na ordem inversa.
fun invert (x) = if x = nil then nil
else invert ( tl ( x ) ) @ [ hd ( x ) ];
- Função que recebe uma lista como
parâmetro e retorna a soma de todos os seus elementos.
fun somatudo ( nil )=[0]
| somatudo( L ) = [hd( L
)=hd(somatudo(tl( L ) );
- Função que recebe uma lista
como parâmetro e retorna os números pares da lista
fun npares ( nil )= nil
| npares(L) = if hd(L) mod 2 = 0
then [hd(L)]@
npares(tl(L))
else npares(tl(l));
npares( L );
Função que recebe uma lista e um inteiro
como parâmetro e verifica se há algum elemento maior que o valor passado na lista
fun verMaior ( valor, nil )= false
| verMaior(valor, L) = if hd(L) > valor
then true
else
verMaior(valor, tl(L));Função que recebe uma lista e um inteiro
como parâmetro e verifica a ocorrência deste valor na lista
fun ocorrencia ( valor, nil )= 0
| ocorrencia (valor, L) = if valor = hd(L)
then 1 +
ocorrencia(valor,tl(L))
else
ocorrencia(valor, tl(L));Função que recebe uma lista como
parâmetro e retorna a soma dos quadrados de seus elementos
fun quadSum (L)= 0
| quadSum (L) = if tl(L)= []
then hd(L)*hd(L)
else
hd(L)*hd(L)+quadSum(tl(L));Função que recebe uma lista como parâmetro
e retorna o cubo de cad um dos elementos da lista
fun cubo (nil)= nil
| cubo (L) = [hd(L) * hd(L) * hd(L)] @ cubo(tl(L));
cubo(L);
Outros exemplos de funções:Função que verifica se um número é primo,
recebe como parâmetro o número a ser testado e o número 2, nesta ordem
fun primo (num,dois)= if num div 2 >=
dois
then if num mod dois = 0
then false
else primo(num, dois+1)
else true;
Função que calcula o fatorial de um número
passado como parâmetro
fun fatorial(num)= if num =0
then 1
else num * fatorial(num-1);
Volta para a página inicial
Comentários, dúvidas,
sugestões, envie um mail para Juliene ou para Isabel
|