Skip to content

Commit 51bc04b

Browse files
committed
replace hashdict with maps
1 parent 061dd60 commit 51bc04b

48 files changed

Lines changed: 242 additions & 242 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

code_samples/ch04/simple_todo.ex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
defmodule TodoList do
2-
def new, do: HashDict.new
2+
def new, do: %{}
33

44
def add_entry(todo_list, date, title) do
5-
HashDict.update(
5+
Map.update(
66
todo_list,
77
date,
88
[title],
@@ -11,6 +11,6 @@ defmodule TodoList do
1111
end
1212

1313
def entries(todo_list, date) do
14-
HashDict.get(todo_list, date, [])
14+
Map.get(todo_list, date, [])
1515
end
16-
end
16+
end

code_samples/ch04/todo_builder.ex

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
defmodule TodoList do
2-
defstruct auto_id: 1, entries: HashDict.new
2+
defstruct auto_id: 1, entries: %{}
33

44
def new(entries \\ []) do
55
Enum.reduce(
@@ -14,7 +14,7 @@ defmodule TodoList do
1414
entry
1515
) do
1616
entry = Map.put(entry, :id, auto_id)
17-
new_entries = HashDict.put(entries, auto_id, entry)
17+
new_entries = Map.put(entries, auto_id, entry)
1818

1919
%TodoList{todo_list |
2020
entries: new_entries,
@@ -48,7 +48,7 @@ defmodule TodoList do
4848

4949
old_entry ->
5050
new_entry = updater_fun.(old_entry)
51-
new_entries = HashDict.put(entries, new_entry.id, new_entry)
51+
new_entries = Map.put(entries, new_entry.id, new_entry)
5252
%TodoList{todo_list | entries: new_entries}
5353
end
5454
end
@@ -58,6 +58,6 @@ defmodule TodoList do
5858
%TodoList{entries: entries} = todo_list,
5959
entry_id
6060
) do
61-
%TodoList{todo_list | entries: HashDict.delete(entries, entry_id)}
61+
%TodoList{todo_list | entries: Map.delete(entries, entry_id)}
6262
end
63-
end
63+
end

code_samples/ch04/todo_crud.ex

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
defmodule TodoList do
2-
defstruct auto_id: 1, entries: HashDict.new
2+
defstruct auto_id: 1, entries: %{}
33

44
def new, do: %TodoList{}
55

@@ -8,7 +8,7 @@ defmodule TodoList do
88
entry
99
) do
1010
entry = Map.put(entry, :id, auto_id)
11-
new_entries = HashDict.put(entries, auto_id, entry)
11+
new_entries = Map.put(entries, auto_id, entry)
1212

1313
%TodoList{todo_list |
1414
entries: new_entries,
@@ -42,7 +42,7 @@ defmodule TodoList do
4242

4343
old_entry ->
4444
new_entry = updater_fun.(old_entry)
45-
new_entries = HashDict.put(entries, new_entry.id, new_entry)
45+
new_entries = Map.put(entries, new_entry.id, new_entry)
4646
%TodoList{todo_list | entries: new_entries}
4747
end
4848
end
@@ -52,6 +52,6 @@ defmodule TodoList do
5252
%TodoList{entries: entries} = todo_list,
5353
entry_id
5454
) do
55-
%TodoList{todo_list | entries: HashDict.delete(entries, entry_id)}
55+
%TodoList{todo_list | entries: Map.delete(entries, entry_id)}
5656
end
57-
end
57+
end

code_samples/ch04/todo_entry_map.ex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
defmodule MultiDict do
2-
def new, do: HashDict.new
2+
def new, do: %{}
33

44
def add(dict, key, value) do
5-
HashDict.update(
5+
Map.update(
66
dict,
77
key,
88
[value],
@@ -11,7 +11,7 @@ defmodule MultiDict do
1111
end
1212

1313
def get(dict, key) do
14-
HashDict.get(dict, key, [])
14+
Map.get(dict, key, [])
1515
end
1616
end
1717

@@ -25,4 +25,4 @@ defmodule TodoList do
2525
def entries(todo_list, date) do
2626
MultiDict.get(todo_list, date)
2727
end
28-
end
28+
end

code_samples/ch04/todo_import.ex

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
defmodule TodoList do
2-
defstruct auto_id: 1, entries: HashDict.new
2+
defstruct auto_id: 1, entries: %{}
33

44
def new(entries \\ []) do
55
Enum.reduce(
@@ -14,7 +14,7 @@ defmodule TodoList do
1414
entry
1515
) do
1616
entry = Map.put(entry, :id, auto_id)
17-
new_entries = HashDict.put(entries, auto_id, entry)
17+
new_entries = Map.put(entries, auto_id, entry)
1818

1919
%TodoList{todo_list |
2020
entries: new_entries,
@@ -48,7 +48,7 @@ defmodule TodoList do
4848

4949
old_entry ->
5050
new_entry = updater_fun.(old_entry)
51-
new_entries = HashDict.put(entries, new_entry.id, new_entry)
51+
new_entries = Map.put(entries, new_entry.id, new_entry)
5252
%TodoList{todo_list | entries: new_entries}
5353
end
5454
end
@@ -58,7 +58,7 @@ defmodule TodoList do
5858
%TodoList{entries: entries} = todo_list,
5959
entry_id
6060
) do
61-
%TodoList{todo_list | entries: HashDict.delete(entries, entry_id)}
61+
%TodoList{todo_list | entries: Map.delete(entries, entry_id)}
6262
end
6363
end
6464

@@ -103,4 +103,4 @@ defmodule TodoList.CsvImporter do
103103
defp create_entry({date, title}) do
104104
%{date: date, title: title}
105105
end
106-
end
106+
end

code_samples/ch04/todo_multi_dict.ex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
defmodule MultiDict do
2-
def new, do: HashDict.new
2+
def new, do: %{}
33

44
def add(dict, key, value) do
5-
HashDict.update(
5+
Map.update(
66
dict,
77
key,
88
[value],
@@ -11,7 +11,7 @@ defmodule MultiDict do
1111
end
1212

1313
def get(dict, key) do
14-
HashDict.get(dict, key, [])
14+
Map.get(dict, key, [])
1515
end
1616
end
1717

@@ -25,4 +25,4 @@ defmodule TodoList do
2525
def entries(todo_list, date) do
2626
MultiDict.get(todo_list, date)
2727
end
28-
end
28+
end

code_samples/ch05/registered_todo_server.ex

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ end
4646

4747

4848
defmodule TodoList do
49-
defstruct auto_id: 1, entries: HashDict.new
49+
defstruct auto_id: 1, entries: %{}
5050

5151
def new(entries \\ []) do
5252
Enum.reduce(
@@ -61,7 +61,7 @@ defmodule TodoList do
6161
entry
6262
) do
6363
entry = Map.put(entry, :id, auto_id)
64-
new_entries = HashDict.put(entries, auto_id, entry)
64+
new_entries = Map.put(entries, auto_id, entry)
6565

6666
%TodoList{todo_list |
6767
entries: new_entries,
@@ -95,7 +95,7 @@ defmodule TodoList do
9595

9696
old_entry ->
9797
new_entry = updater_fun.(old_entry)
98-
new_entries = HashDict.put(entries, new_entry.id, new_entry)
98+
new_entries = Map.put(entries, new_entry.id, new_entry)
9999
%TodoList{todo_list | entries: new_entries}
100100
end
101101
end
@@ -105,6 +105,6 @@ defmodule TodoList do
105105
%TodoList{entries: entries} = todo_list,
106106
entry_id
107107
) do
108-
%TodoList{todo_list | entries: HashDict.delete(entries, entry_id)}
108+
%TodoList{todo_list | entries: Map.delete(entries, entry_id)}
109109
end
110-
end
110+
end

code_samples/ch05/todo_server.ex

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ end
4343

4444

4545
defmodule TodoList do
46-
defstruct auto_id: 1, entries: HashDict.new
46+
defstruct auto_id: 1, entries: %{}
4747

4848
def new(entries \\ []) do
4949
Enum.reduce(
@@ -58,7 +58,7 @@ defmodule TodoList do
5858
entry
5959
) do
6060
entry = Map.put(entry, :id, auto_id)
61-
new_entries = HashDict.put(entries, auto_id, entry)
61+
new_entries = Map.put(entries, auto_id, entry)
6262

6363
%TodoList{todo_list |
6464
entries: new_entries,
@@ -92,7 +92,7 @@ defmodule TodoList do
9292

9393
old_entry ->
9494
new_entry = updater_fun.(old_entry)
95-
new_entries = HashDict.put(entries, new_entry.id, new_entry)
95+
new_entries = Map.put(entries, new_entry.id, new_entry)
9696
%TodoList{todo_list | entries: new_entries}
9797
end
9898
end
@@ -102,6 +102,6 @@ defmodule TodoList do
102102
%TodoList{entries: entries} = todo_list,
103103
entry_id
104104
) do
105-
%TodoList{todo_list | entries: HashDict.delete(entries, entry_id)}
105+
%TodoList{todo_list | entries: Map.delete(entries, entry_id)}
106106
end
107-
end
107+
end

code_samples/ch06/key_value_gen_server.ex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ defmodule KeyValueStore do
1414
end
1515

1616
def init(_) do
17-
{:ok, HashDict.new}
17+
{:ok, %{}}
1818
end
1919

2020
def handle_cast({:put, key, value}, state) do
21-
{:noreply, HashDict.put(state, key, value)}
21+
{:noreply, Map.put(state, key, value)}
2222
end
2323

2424
def handle_call({:get, key}, _, state) do
25-
{:reply, HashDict.get(state, key), state}
25+
{:reply, Map.get(state, key), state}
2626
end
27-
end
27+
end

code_samples/ch06/server_process.ex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@ defmodule KeyValueStore do
4444
end
4545

4646
def init do
47-
HashDict.new
47+
%{}
4848
end
4949

5050
def handle_call({:put, key, value}, state) do
51-
{:ok, HashDict.put(state, key, value)}
51+
{:ok, Map.put(state, key, value)}
5252
end
5353

5454
def handle_call({:get, key}, state) do
55-
{HashDict.get(state, key), state}
55+
{Map.get(state, key), state}
5656
end
57-
end
57+
end

0 commit comments

Comments
 (0)