Digamos que tenemos un conjunto particular de funciones en cadenas. Estas funciones son como completar los espacios en blanco o madlibs, excepto que solo toman una entrada y la usan para completar todos sus espacios en blanco. Por ejemplo, podríamos tener una función similar a
I went to the ____ store and bought ____ today.
Si aplicamos esta función a la cadena, cheese
el resultado sería:
I went to the cheese store and bought cheese today.
Podemos representar estas funciones como una lista no vacía de cadenas, donde los espacios en blanco son simplemente los espacios entre cadenas. Por ejemplo, nuestra función anterior sería:
["I went to the ", " store and bought ", " today."]
Con esta representación solo hay una representación para cada función de este tipo y solo una función para cada representación.
Una cosa realmente interesante es que el conjunto de tales funciones está cerrado bajo composición. Es decir, la composición de dos de nuestras funciones es siempre otra de estas funciones. Por ejemplo, si compongo nuestra función anterior con
["blue ", ""]
(la función que antecede blue
a la entrada) Obtenemos la función:
["I went to the blue ", " store and bought blue ", " today."]
Sin embargo, estos pueden volverse un poco más complejos. Por ejemplo, si componimos la primera función con
["big ", " and ", ""]
El resultado es
["I went to the big ", " and ", " store and bought big ", "and", " today."]
Tarea
Su tarea es tomar dos funciones como se describen como listas de cadenas no vacías y generar su composición como una lista de cadenas no vacía.
Para el propósito de este desafío, una lista puede ser cualquier contenedor ordenado que permita duplicados y una cadena puede ser un tipo de cadena nativa, una lista de caracteres o una lista de enteros.
Este es el código de respuestas de golf se puntuará en bytes, con menos bytes mejor.
Casos de prueba
["","xy"] ["ab",""] -> ["ab","xy"]
["x","y","z"] ["a","b"] -> ["xa","bya","bz"]
["xy"] ["ab"] -> ["xy"]
["","",""] ["a",""] -> ["a","a",""]
["x",""] ["","",""] -> ["x","",""]
["x","y","z"] ["a","b","c"] -> ["xa","b","cya","b","cz"]
["x","x","x"] ["a"] -> ["xaxax"]
["w","x","y","z"] ["ab","cd","e"] -> ["wab","cd","exab","cd","eyab","cd","ez"]