Posts tagged ‘erlang’

так даже более правильно.

-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).

Как дети в школу.

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

sum(N) -> sum_acc(N,0).
sum_acc(1,A) -> A+1;
sum_acc(N,A) -> sum_acc(N-1,A+N).

P.S. Кто угадает название учебника? :)