def add_word(suffix, word): if suffix is None: return ImmDict().put(word, 1) elif suffix.get(word) != None: return suffix.put(word, 1 + suffix.get(word)) else: return suffix.put(word, 1)
def build(filename): return build_chain(None, pairs_gen(filename, line_gen), ImmDict()) #for pair in pairs_gen('iliad.txt', line_gen): # print(pair) #t = ImmDict() #suff1 = ImmDict() #suff1.dictionary = {"great": 2, "silly": 1} #suff2 = ImmDict() #suff2.dictionary = {"funny": 8, "nonsense": 1} #t.dictionary = {("Yusuf", "is"): suff1, ("Navin", "is"): suff2} #result = add_to_chain(t, (("Yusuf", "is"), "asdffg")).dictionary #print(result.get(("Yusuf", "is")).dictionary) #f = ImmDict() #suff3 = ImmDict() #suff3.dictionary = {"great": 2, "silly": 1} #suff4 = ImmDict() #suff4.dictionary = {"funny": 8, "nonsense": 1} #f.dictionary = {("Yusuf", "is"): suff3, ("Navin", "is"): suff4} #result2 = add_to_chain(f, (("Yusuf", "not"), "asdffg")).dictionary #print(result2.get(("Yusuf", "not")).dictionary) #print(result) #result = add_to_chain(t, (("Yusuf", "is"), "silly")).dictionary #print(result.get(("Yusuf", "is")).dictionary) #print(result) #result = pairs_gen('dracula.txt', line_gen) #for line in result: # print(line) #generator = pairs_gen('test.txt', line_gen) #chain = build_chain(None, generator, ImmDict()) #for key in chain.dictionary: # print(key) # print(chain.dictionary[key].dictionary) #result = build("aladdin.txt") #for key in result.dictionary: # print(key) # print(result.dictionary[key].dictionary) #TESTING #for line in line_gen('iliad.txt'): #print(line) #for pair in pairs_gen('iliad.txt', line_gen): #print(pair)
def empty_suffix(): return ImmDict()
def empty_suffix(): """Returns an instance of the ImmDict class- an empty immutable dictionary.""" return ImmDict()
def build(file_name): gen = pairs_gen(file_name, line_gen) return build_chain(add_to_chain, gen, ImmDict())
def add_to_chain(chain, pair): if chain.get(pair[0]) is None: return chain.put(pair[0], suffix.add_word(ImmDict(), pair[1])) else: value = chain.get(pair[0]) return chain.put(pair[0], suffix.add_word(value, pair[1]))
def empty_suffix(): return ImmDict() # Default constructor for suffix
def build(filename): return build_chain(None, pairs_gen(filename, line_gen), ImmDict())
def build(file): return build_chain(add_to_chain, pairs_gen(file, line_gen), ImmDict())