Diciamo che abbiamo un insieme particolare di funzioni sulle stringhe. Queste funzioni sono un po 'come riempire gli spazi vuoti o i madlibs, tranne che prendono solo un input e lo usano per riempire tutti i loro spazi. Ad esempio potremmo avere una funzione simile
I went to the ____ store and bought ____ today.
Se applicassimo questa funzione alla stringa cheese
il risultato sarebbe:
I went to the cheese store and bought cheese today.
Possiamo rappresentare queste funzioni come un elenco non vuoto di stringhe, in cui gli spazi vuoti sono semplicemente gli spazi tra le stringhe. Ad esempio la nostra funzione sopra sarebbe:
["I went to the ", " store and bought ", " today."]
Con questa rappresentazione esiste una sola rappresentazione per ogni funzione di questo tipo e una sola funzione per ogni rappresentazione.
Una cosa davvero ordinata è che l'insieme di tali funzioni è chiuso sotto composizione. Ciò significa che la composizione di due delle nostre funzioni è sempre un'altra di queste funzioni. Ad esempio se compongo la nostra funzione sopra con
["blue ", ""]
(la funzione che antepone blue
l'ingresso) Otteniamo la funzione:
["I went to the blue ", " store and bought blue ", " today."]
Questi possono però diventare un po 'più complessi. Ad esempio se componiamo la prima funzione con
["big ", " and ", ""]
Il risultato è
["I went to the big ", " and ", " store and bought big ", "and", " today."]
Compito
Il tuo compito è quello di prendere due funzioni come descritte come elenchi di stringhe non vuoti e generare la loro composizione come un elenco di stringhe non vuoti.
Ai fini di questa sfida, un elenco può essere qualsiasi contenitore ordinato che consente duplicati e una stringa può essere un tipo di stringa nativo, un elenco di caratteri o un elenco di numeri interi.
Questo è il codice-golf le risposte saranno segnate in byte con meno byte migliori.
Casi test
["","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"]