Tantangan ini didasarkan pada masalah yang dijelaskan dalam D. Parnas, Mengenai kriteria yang akan digunakan dalam penguraian sistem menjadi modul , dan diuraikan dalam J. Morris, Pemrograman Nyata dalam Bahasa Fungsional .
Tulis program atau fungsi yang mengambil daftar judul buku dari stdin
atau sebagai argumen, dalam format yang masuk akal dan nyaman untuk bahasa Anda. Sebagai contoh,
Green Sleeves
Time Was Lost
atau
("Green Sleeves";"Time Was Lost")
Kembalikan atau cetak ke stdout
daftar kata kunci yang disusun menurut abjad, yang menunjukkan konteksnya dalam judul asli dengan melampirkan setiap kata kunci dalam kurung siku ( <
dan >
). Seperti halnya input, output dapat dalam format yang masuk akal yang sesuai untuk bahasa Anda - baris yang dipisahkan oleh baris baru, daftar string, dll:
<Green> Sleeves
Time Was <Lost>
Green <Sleeves>
<Time> Was Lost
Time <Was> Lost
Judul akan terdiri dari serangkaian kata kunci yang dipisahkan oleh satu ruang. Kata kunci hanya akan berisi karakter alfabet. Kata kunci harus diurutkan secara leksikografis . Judul akan unik, dan kata kunci akan unik dalam setiap judul tetapi kata kunci yang sama mungkin ada di beberapa judul. Jika kata kunci ada di lebih dari satu judul, output harus mencantumkan setiap penampilan dalam urutan acak . Misalnya, diberikan input ini:
A Dugong
A Proboscis
Output yang valid adalah:
<A> Proboscis
<A> Dugong
A <Dugong>
A <Proboscis>
Atau:
<A> Dugong
<A> Proboscis
A <Dugong>
A <Proboscis>
Ini adalah kode-golf - pemenangnya adalah solusi terpendek dalam byte. Celah standar tidak diijinkan.
Jawaban:
Pyth,
252422 byteCobalah online.
Mengambil input sebagai larik garis, misalnya
["Green Sleeves","Time Was Lost"]
.Penjelasan
sumber
Time Was Time
.keywords will be unique within each title
,.Japt , 55 byte
Mungkin ini bisa dibuat lebih pendek, tapi saya tidak yakin bagaimana ...
Bagaimana itu bekerja
sumber
CJam,
413632 byteUji di sini.
sumber
Haskell, 113 byte
Contoh penggunaan:
f ["Green Sleeves","Time Was Lost"]
->["<Green> Sleeves","Time Was <Lost>","Green <Sleeves>","<Time> Was Lost","Time <Was> Lost"]
.sumber