Write an Erlang program that counts the word frequencies in the file assign3-part2.txt. Erlang uses a list of tuples as a hash table. Write four Erlang functions.
- This function has a string file name parameter and returns a list of words in the file. Open the file with
file:open. The file lab3-part2.txt was written in a text editor as one line, soio:get_linewill read the whole file.string:tokenswill separate it into words. Its second argument specifies all the delimiters.file:open(lab3-part2.txt”,read).L1= io:get_line(S, '').
- This function has two parameters, a string word and a list of tuples, and returns a list of tuples with the word added appropriately. Each tuple is a word key and a frequency value. The
lists:keyfindmethod will find a tuple if it exists and return false if it does not. If the word is not found uselists:appendto add a tuple with the word as key and1as the frequency. If the word is found uselists:replaceto replace the tuple with a new tuple with frequency increased by one. - This function has a list of words as parameter and returns a hash table of tuples of words and their frequencies. The
string:to_lowermethod will make a word lower case to provided the desired case insensitivity. Use thelists:foldlmethod to build the answer using the function2. - This function outputs the final hash table sorted by frequency from high to low using the
lists:sortfunction. Its one parameter is the file name. It uses functions3and1.
