Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -module(lab2).
- -compile([export_all]).
- map_append(Key, Value, Map) -> Map#{Key => Value}.
- map_update(Key, Value, Map) -> Map#{Key := Value}.
- map_display(Map) -> maps:map(fun entry_display/2, Map).
- entry_display(Key, Value) -> io:format("~p=>~p\n", [Key,Value]).
- print_file_map(Filename) ->
- {ok, Binary} = file:read_file(Filename),
- Tokens = string:tokens(binary:bin_to_list(Binary), "\n "),
- TrimTokens = lists:map(fun string:trim/1, Tokens),
- Map = #{},
- mapFromList(TrimTokens, Map),
- map_display(Map).
- mapFromList([Head | Tail], Map) ->
- Check = maps:is_key(Head, Map),
- if
- Check == true ->
- Value = maps:get(Head, Map),
- NewMap = map_update(Head, Value+1, Map);
- Check == false ->
- NewMap = map_append(Head, 1, Map)
- end,
- mapFromList(Tail, NewMap);
- mapFromList([], Map) -> map_display(Map).
- % list:map na mape map_append(key, 0) gdy nie ma klucza, update value++ otherwise
- % Map = #{a=>'1',b=>'2',c=>'3'}.
- % zad1:map_display(Map),ok.
- % file:read_file('ala').
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement