Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. defmodule Tree do
  2. defstruct value, dependents: [], children %{}
  3. end
  4.  
  5. defp get_dependents_tokens_continue?(nil, tokens) do:
  6. []
  7. end
  8.  
  9. defp get_dependents_tokens_continue?((%Tree{value: value, dependents: dependents, children: children}, tokens) do:
  10. get_dependents_tokens((%Tree{value: value, dependents: dependents, children: children}, tl(tokens))
  11. end
  12.  
  13. defp get_dependents_tokens((%Tree{value: value, dependents: dependents, children: children}, []) do:
  14. dependents
  15. end
  16.  
  17. defp get_dependents_tokens((%Tree{value: value, dependents: dependents, children: children}, tokens) do:
  18. Map.get(children, hd(tokens)) |> get_dependents_tokens_continue?(tokens)
  19. end
  20.  
  21. def get_dependents((%Tree{value: value, dependents: dependents, children: children}, key) when is_bitstring(key) do:
  22. get_dependents_tokens((%Tree{value: value, dependents: dependents, children: children}, String.split(key, "."))
  23. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement