ufm: (Default)
[personal profile] ufm

-module(sum).
-export([sum/1,sum/2]).

sum(N) -> sum_acc(1,N,0).
sum(B,N) -> sum_acc(B,N,0).

sum_acc(B,N,A) when B =:= N -> A+N;
sum_acc(B,N,_) when B > N -> throw({’EXIT’,{wrong_param,sum_acc}});
sum_acc(B,N,A) -> sum_acc(B,N-1,A+N).

Originally published at U.F.M's Homepage. Please leave any comments there.