Question: Haskell GHCI: Tail recursion and Datatypes PLEASE TRY TO ANSWER IT THIS TIME AS BEST POSSIBLE. 1. (8 points) Write a function common : :
Haskell GHCI: Tail recursion and Datatypes
PLEASE TRY TO ANSWER IT THIS TIME AS BEST POSSIBLE.

1. (8 points) Write a function common : : Eq a => [a] -> [a] -> ([a], [a], [a]) where common xy = (cp, x', y'), where cp is the longest common prefix of x and y, and x' and y' are x and y with cp removed. (I.e., x = cp ++x', y=cp ++y', and cp cannot be extended.) Example: if x is [1,3,5,7,9), and y is [1,3,5,8,9], then common x y is ([1,3,5],[7,9],[8,9]). Restriction: common should call an assistant tail recursive routine that implements a loop. Hint: You'll also want reverse somewhere. 1. (8 points) Write a function common : : Eq a => [a] -> [a] -> ([a], [a], [a]) where common xy = (cp, x', y'), where cp is the longest common prefix of x and y, and x' and y' are x and y with cp removed. (I.e., x = cp ++x', y=cp ++y', and cp cannot be extended.) Example: if x is [1,3,5,7,9), and y is [1,3,5,8,9], then common x y is ([1,3,5],[7,9],[8,9]). Restriction: common should call an assistant tail recursive routine that implements a loop. Hint: You'll also want reverse somewhere
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
