Ce défi est basé sur un problème décrit dans D. Parnas, Sur les critères à utiliser dans la décomposition des systèmes en modules , et développé dans J. Morris, Real Programming in Functional Languages .
Écrivez un programme ou une fonction qui prend une liste de titres de livres de stdin
ou comme argument, dans un format raisonnable et pratique pour votre langue. Par exemple,
Green Sleeves
Time Was Lost
ou
("Green Sleeves";"Time Was Lost")
Retournez ou imprimez dans stdout
une liste alphabétique des mots-clés, montrant leur contexte dans les titres originaux en mettant chaque mot-clé entre accolades ( <
et >
). Comme pour l'entrée, la sortie peut être dans un format raisonnable qui convient à vos lignes séparées par une nouvelle ligne de langue, une liste de chaînes, etc.:
<Green> Sleeves
Time Was <Lost>
Green <Sleeves>
<Time> Was Lost
Time <Was> Lost
Les titres seront constitués d'une série de mots clés séparés par un seul espace. Les mots clés ne contiendront que des caractères alphabétiques. Les mots clés doivent être triés lexicographiquement . Les titres seront uniques et les mots clés seront uniques dans chaque titre, mais le même mot clé peut exister dans plusieurs titres. Si un mot clé existe dans plusieurs titres, la sortie doit répertorier chaque apparence dans un ordre arbitraire . Par exemple, étant donné cette entrée:
A Dugong
A Proboscis
Une sortie valide serait soit:
<A> Proboscis
<A> Dugong
A <Dugong>
A <Proboscis>
Ou:
<A> Dugong
<A> Proboscis
A <Dugong>
A <Proboscis>
C'est le code-golf - le gagnant est la solution la plus courte en octets. Les failles standard ne sont pas autorisées.