Advertisement
Guest User

lab3

a guest
Oct 14th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Erlang 1.04 KB | None | 0 0
  1. -module(lab2).
  2. -compile([export_all]).
  3.  
  4. map_append(Key, Value, Map) -> Map#{Key => Value}.
  5. map_update(Key, Value, Map) -> Map#{Key := Value}.
  6.  
  7. map_display(Map) -> maps:map(fun entry_display/2, Map).
  8. entry_display(Key, Value) -> io:format("~p=>~p\n", [Key,Value]).
  9.  
  10. print_file_map(Filename) ->
  11.   {ok, Binary} = file:read_file(Filename),
  12.   Tokens = string:tokens(binary:bin_to_list(Binary), "\n "),
  13.   TrimTokens = lists:map(fun string:trim/1, Tokens),
  14.   Map = #{},
  15.   mapFromList(TrimTokens, Map),
  16.   map_display(Map).
  17.  
  18. mapFromList([Head | Tail], Map) ->
  19.     Check = maps:is_key(Head, Map),
  20.     if
  21.       Check == true ->
  22.         Value = maps:get(Head, Map),
  23.         NewMap = map_update(Head, Value+1, Map);
  24.       Check == false ->
  25.         NewMap = map_append(Head, 1, Map)
  26.     end,
  27.     mapFromList(Tail, NewMap);
  28.  
  29.   mapFromList([], Map) -> map_display(Map).
  30.  
  31. % list:map na mape map_append(key, 0) gdy nie ma klucza, update value++ otherwise
  32.  
  33. % Map = #{a=>'1',b=>'2',c=>'3'}.
  34. % zad1:map_display(Map),ok.
  35.  
  36. % file:read_file('ala').
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement