Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 22nd, 2012  |  syntax: Erlang  |  size: 0.46 KB  |  hits: 36  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. %% F1 = {["A"], [2], [0.7, 0.3]}.
  2. %% F2 = {["B"], [3], [0.2, 0.7, 0.1]}.
  3. %% F1 * F2 = {["A", "B"], [2, 3], [0.7 * 0.2, 0.7 * 0.7, 0.7 * 0.1,
  4. %% 0.3 * 0.2, 0.3 * 0.7, 0.3 * 0.1]}
  5.  
  6. %% factor multiplication
  7. mul({VarsA, CardsA, ValsA}, {VarsB, CardsB, ValsB}) ->
  8.         ValsC =
  9.                 lists:foldl(
  10.                   fun(AElem, Acc) ->
  11.                       [lists:map(fun(BElem) -> AElem * BElem end, ValsB)|Acc]
  12.                   end, [], lists:reverse(ValsA)),
  13.         {VarsA ++ VarsB, CardsA ++ CardsB, lists:flatten(ValsC)}.