Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- defmodule Tree do
- defstruct value, dependents: [], children %{}
- end
- defp get_dependents_tokens_continue?(nil, tokens) do:
- []
- end
- defp get_dependents_tokens_continue?((%Tree{value: value, dependents: dependents, children: children}, tokens) do:
- get_dependents_tokens((%Tree{value: value, dependents: dependents, children: children}, tl(tokens))
- end
- defp get_dependents_tokens((%Tree{value: value, dependents: dependents, children: children}, []) do:
- dependents
- end
- defp get_dependents_tokens((%Tree{value: value, dependents: dependents, children: children}, tokens) do:
- Map.get(children, hd(tokens)) |> get_dependents_tokens_continue?(tokens)
- end
- def get_dependents((%Tree{value: value, dependents: dependents, children: children}, key) when is_bitstring(key) do:
- get_dependents_tokens((%Tree{value: value, dependents: dependents, children: children}, String.split(key, "."))
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement