Problem 2.2: Linked Lists as Strings (100pts)

Kirito and Eugeo like different ways of displaying the linked list structure in Python. While Kirito likes box and pointer diagrams, Eugeo prefers a more futuristic way. Write a function make_to_string that returns a function that converts the linked list to a string in their preferred style.

def make_to_string(front, mid, back, empty_repr):
    """ Returns a function that turns linked lists to strings.

    >>> kirito_to_string = make_to_string("[", "|-]-->", "", "[]")
    >>> eugeo_to_string = make_to_string("(", " . ", ")", "()")
    >>> lst = Link(1, Link(2, Link(3, Link(4))))
    >>> kirito_to_string(lst)
    '[1|-]-->[2|-]-->[3|-]-->[4|-]-->[]'
    >>> kirito_to_string(Link.empty)
    '[]'
    >>> eugeo_to_string(lst)
    '(1 . (2 . (3 . (4 . ()))))'
    >>> eugeo_to_string(Link.empty)
    '()'
    """
    "*** YOUR CODE HERE ***"

Hint1: You can convert numbers to strings using the str function, and you can combine strings together using +.

Hint2: You can use either loop or recursion and the answer is not complicated.