Skip to content

Add convenience method to build trie from Enumerable #20

@roryokane

Description

@roryokane

It could be called something like Trie.from_enumerable. Its definition is simple:

def Trie.from_enumerable(enumerable)
  enumerable.reduce(Trie.new) do |trie, item|
    trie.add(item); trie
  end
end

I would use this in my program to easily build a Trie from a text file:

words_trie = File.open(WORDLIST_FILE_PATH, 'r') do |wordlist_file|
  Trie.from_enumerable(wordlist_file.each_line)
end

If you want, you could also provide a version that adds both keys and values:

def Trie.from_key_value_enumerable(kv_enumerable)
  trie = Trie.new
  kv_enumerable.each do |key, value|
    trie.add(key, value)
  end
  trie
end

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions