Manual MosML
Juliene Lopes Gonzalez
Orientada por Isabel Harb Manssour
 

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

 ../Imagens/EMBAN15.GIF (1469 bytes)

../Imagens/E-MAIL.JPG (3237 bytes) Comentários, dúvidas, sugestões, envie um mail para Juliene ou para Isabel

../Imagens/EMBAN15.GIF (1469 bytes)

Última alteração em 07 de Outubro de 2000.