
Untitled
By: a guest on
Jun 22nd, 2012 | syntax:
Erlang | size: 0.46 KB | hits: 36 | expires: Never
%% F1 = {["A"], [2], [0.7, 0.3]}.
%% F2 = {["B"], [3], [0.2, 0.7, 0.1]}.
%% F1 * F2 = {["A", "B"], [2, 3], [0.7 * 0.2, 0.7 * 0.7, 0.7 * 0.1,
%% 0.3 * 0.2, 0.3 * 0.7, 0.3 * 0.1]}
%% factor multiplication
mul({VarsA, CardsA, ValsA}, {VarsB, CardsB, ValsB}) ->
ValsC =
lists:foldl(
fun(AElem, Acc) ->
[lists:map(fun(BElem) -> AElem * BElem end, ValsB)|Acc]
end, [], lists:reverse(ValsA)),
{VarsA ++ VarsB, CardsA ++ CardsB, lists:flatten(ValsC)}.