Anonymous user
Ethiopian multiplication: Difference between revisions
→{{header|Erlang}}
m (Adding MUMPS example) |
|||
Line 659:
=={{header|Erlang}}==
▲<lang erlang>-module(ethiopian_multiplication).
-export([multiply/2]).
halve(N) ->
multiply(Lhs, Rhs) when is_integer(Lhs) and Lhs > 0 and▼
N div 2.
double(N) ->
N * 2.
even(N) ->
(N rem 2) == 0.
is_integer(Rhs) and Rhs > 0 ->
RHS+Acc;
multiply(LHS,RHS,Acc) ->
case even(LHS) of
true ->
multiply(halve(LHS),double(RHS),Acc);
false ->
multiply(halve(LHS),double(RHS),Acc+RHS)
end.
</lang>
=={{header|Factor}}==
|