Escreva o código das funções seguintes:
-module(aula1_solucao). -export([count/1, occur/2, delete/2, append/2, member/2, reverse/1, average/1]). % COUNT/1 ----------------------------- % % conta o numero de elementos da lista % count([]) -> 0; count([H|L]) -> count(L) + 1. % MEMBER/2 ---------------------------- % % verifica se o elemento pertence 'a lista % member(X, [X|_]) -> true; member(X, [_|L]) -> member(X, L); member(_, []) -> false. % OCCURS/2 ----------------------------- % % conta o numero de ocorrencias % do elemento na lista % occur(_, []) -> 0; occur(X, [X|L]) -> occur(X, L) + 1; occur(X, [_|L]) -> occur(X, L). % DELETE/2 ---------------------------- % % apaga as diversas ocorrencias % do elemento na lista % delete(_, []) -> []; delete(X, [X|L]) -> delete(X, L); delete(X, [A|L]) -> [A|delete(X, L)]. % APPEND/2 ---------------------------- % % junta duas listas numa unica % append([H|L1], L2) -> [H|append(L1, L2)]; append([], L2) -> L2. % REVERSE/1 --------------------------- % % inverte a ordem dos elementos na lista % reverse(L) -> reverse(L, []). reverse([H|L], Reversed) -> reverse(L, [H|Reversed]); reverse([], Reversed) -> Reversed. % AVERAGE/1 --------------------------- % % calcula a media dos elementos da lista % average(L) -> average(L, 0, 0). average([], N, S) -> S/N; average([H|L], N, S) -> average(L, N+1, S+H).
Última actualização: 15 de Março de 1999