Aula nº 2

Escreva o código das funções seguintes:

OC 98-99 (Exercícios Práticos)


-module(aula2).
-export([factorial/1, factorial_guards/1, bubble/1]).
% factorial/1 -----------------------------
%
% devolve o factorial do numero
%

factorial(0) -> 1;
factorial(N) -> N*factorial(N-1).
% factorial_guards/1 -----------------------------
%
% devolve o factorial do numero, mas a implementacao recorre a "guards"
%

factorial(N) when N > 0 -> N*factorial(N-1);
factorial(0) -> 1.
% bubble/1 ------------------------------
%
% ordenacao da lista usando o "bubble sort"
%
bubble([H]) -> [H];
bubble([H|T]) -> M = lists:max(T), [M|bubble(change(H, M, T))].
% troca a primeira ocorrencia de M por N
change(_, _, []) -> [];
change(N, M, [M|L]) -> [N|L];
change(N, M, [H|L]) -> [H|change(N, M, L)].
Índice

Última actualização: 14 Março 2000

OC 98-99 (Exercícios Práticos)