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, so
io:get_linewill read the whole file.
string:tokenswill separate it into words. Its second argument specifies all the delimiters.
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 use
lists:appendto add a tuple with the word as key and
1as the frequency. If the word is found use
lists: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 the
lists:foldlmethod to build the answer using the function
- 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 functions