1-module(maps_sum). 2-export([correct1/1, 3 wrong1/1, 4 wrong2/1]). 5 6-spec correct1(#{atom() => term()}) -> integer(). 7 8correct1(Data) -> 9 maps:fold(fun (_Key, Value, Acc) when is_integer(Value) -> 10 Acc + Value; 11 (_Key, _Value, Acc) -> 12 Acc 13 end, 0, Data). 14 15-spec wrong1([{atom(),term()}]) -> integer(). 16 17wrong1(Data) -> 18 maps:fold(fun (_Key, Value, Acc) when is_integer(Value) -> 19 Acc + Value; 20 (_Key, _Value, Acc) -> 21 Acc 22 end, 0, Data). 23 24-spec wrong2(#{atom() => term()}) -> integer(). 25 26wrong2(Data) -> 27 lists:foldl(fun (_Key, Value, Acc) when is_integer(Value) -> 28 Acc + Value; 29 (_Key, _Value, Acc) -> 30 Acc 31 end, 0, Data). 32