28 lines
452 B
Elixir
28 lines
452 B
Elixir
defmodule MultiDict do
|
|
def new(), do: %{}
|
|
|
|
def add(dict, key, value) do
|
|
Map.update(
|
|
dict,
|
|
key,
|
|
[value],
|
|
&[value | &1]
|
|
)
|
|
end
|
|
|
|
def get(dict, key) do
|
|
Map.get(dict, key, [])
|
|
end
|
|
end
|
|
|
|
defmodule TodoList do
|
|
def new(), do: MultiDict.new()
|
|
|
|
def add_entry(todo_list, entry) do
|
|
MultiDict.add(todo_list, entry.date, entry)
|
|
end
|
|
|
|
def entries(todo_list, date) do
|
|
MultiDict.get(todo_list, date)
|
|
end
|
|
end
|