%Programa del factorial en Erlang....
-module(facto). % Archivo facto.erl, no se acepta de otro modo.
-export([fact/1]). % Función factorial a ser visible externamente.
% Toda función invocar desde fuera del módulo debe declararse aquí,
% en donde la notación fact/1 señala que fact es una función con un solo
% argumento.
fact(0) -> 1; %primer caso, notar la flecha y el punto y coma...
fact(N) when (N>0)
and is_integer(N) -> N*fact(N-1). %segundo caso, notar el when
% que actúa como filtro con dos condiciones y la versión recursiva
% finalizada con un punto.
% Se dice que fact/1 fue definido recursivamente por dos cláusulas.
% La recursión es lineal, pero el espacio también se consume linealmente.
La declaración de la recursividad es bastante abstracta con respecto a otros lenguajes de programación como java, sin embargo hasta este punto y con los comentarios agregados en cada una de las líneas es bastante endendible.
ResponderEliminar