Questa sfida si basa su un problema descritto in D. Parnas, sui criteri da utilizzare per decomporre i sistemi in moduli , ed elaborato in J. Morris, Real Programming in Functional Languages .
Scrivi un programma o una funzione che prende un elenco di titoli di libri da stdin
o come argomento, in un formato ragionevole e conveniente per la tua lingua. Per esempio,
Green Sleeves
Time Was Lost
o
("Green Sleeves";"Time Was Lost")
Restituisce o stampa stdout
un elenco alfabetico delle parole chiave, mostrando il loro contesto all'interno dei titoli originali racchiudendo ciascuna parola chiave tra parentesi angolari ( <
e >
). Come per l'input, l'output può essere in un formato ragionevole che è conveniente per la tua lingua - linee separate da newline, un elenco di stringhe, ecc:
<Green> Sleeves
Time Was <Lost>
Green <Sleeves>
<Time> Was Lost
Time <Was> Lost
I titoli saranno costituiti da una serie di parole chiave separate da un singolo spazio. Le parole chiave conterranno solo caratteri alfabetici. Le parole chiave devono essere ordinate lessicograficamente . I titoli saranno unici e le parole chiave saranno univoche all'interno di ciascun titolo, ma la stessa parola chiave potrebbe esistere in più titoli. Se esiste una parola chiave in più di un titolo, l'output dovrebbe elencare ogni aspetto in un ordine arbitrario . Ad esempio, dato questo input:
A Dugong
A Proboscis
Un output valido sarebbe:
<A> Proboscis
<A> Dugong
A <Dugong>
A <Proboscis>
O:
<A> Dugong
<A> Proboscis
A <Dugong>
A <Proboscis>
Questo è code-golf - il vincitore è la soluzione più breve in byte. Le scappatoie standard non sono ammesse.