Write a tail recursive function called replicate-to-length, which in a cyclic way (if necessary) replicates the elements in a list until the resulting list is of a certain exact length. You should think of replicate-to-length as a function that iterates over the elements of the list, repeatedly, if necessary. You will probably need to write a helping function to replicate-to-length, which is tail recursive.
The following serves as an example:
(replicate-to-length '(a b c) 8) => (a b c a b c a b)
(replicate-to-length '(a b c) 2) => (a b)
In other words, in (replicate-to-length lst n), take elements out of lst, cyclic if necessary, until you reach n elements.