# xmasTwelve A Christmas challenge: write a program to generate the lyrics to The Twelve Days of Christmas. This is the most stupidly Haskell way I could think of: it makes a product of all the combinations of "$NUMBER $WORD $WORD" and then filters them. Filtering on word length alone wasn't enough, so the signature for each gift also includes the offset into the following lists: ``` two turtle doves two turtle birds two turtle rings two French doves two French birds two French rings two ladies doves two ladies birds two ladies rings two pipers doves two pipers birds two pipers rings six turtle doves six turtle birds six turtle rings six French doves six French birds six French rings six ladies doves six ladies birds six ladies rings six pipers doves six pipers birds six pipers rings ten turtle doves ten turtle birds ten turtle rings ten French doves ten French birds ten French rings ten ladies doves ten ladies birds ten ladies rings ten pipers doves ten pipers birds ten pipers rings three turtle hens three French hens three ladies hens three pipers hens seven turtle hens seven French hens seven ladies hens seven pipers hens eight turtle hens eight French hens eight ladies hens eight pipers hens four calling doves four calling birds four calling rings five calling doves five calling birds five calling rings nine calling doves nine calling birds nine calling rings four gold doves four gold birds four gold rings five gold doves five gold birds five gold rings nine gold doves nine gold birds nine gold rings two geese a-laying two geese drumming two swans a-laying two swans drumming two maids a-laying two maids drumming two lords a-laying two lords drumming six geese a-laying six geese drumming six swans a-laying six swans drumming six maids a-laying six maids drumming six lords a-laying six lords drumming ten geese a-laying ten geese drumming ten swans a-laying ten swans drumming ten maids a-laying ten maids drumming ten lords a-laying ten lords drumming three geese a-swimming three swans a-swimming three maids a-swimming three lords a-swimming seven geese a-swimming seven swans a-swimming seven maids a-swimming seven lords a-swimming eight geese a-swimming eight swans a-swimming eight maids a-swimming eight lords a-swimming three geese a-milking three geese a-leaping three swans a-milking three swans a-leaping three maids a-milking three maids a-leaping three lords a-milking three lords a-leaping seven geese a-milking seven geese a-leaping seven swans a-milking seven swans a-leaping seven maids a-milking seven maids a-leaping seven lords a-milking seven lords a-leaping eight geese a-milking eight geese a-leaping eight swans a-milking eight swans a-leaping eight maids a-milking eight maids a-leaping eight lords a-milking eight lords a-leaping four turtle dancing four French dancing four ladies dancing four pipers dancing five turtle dancing five French dancing five ladies dancing five pipers dancing nine turtle dancing nine French dancing nine ladies dancing nine pipers dancing two geese a-milking two geese a-leaping two swans a-milking two swans a-leaping two maids a-milking two maids a-leaping two lords a-milking two lords a-leaping six geese a-milking six geese a-leaping six swans a-milking six swans a-leaping six maids a-milking six maids a-leaping six lords a-milking six lords a-leaping ten geese a-milking ten geese a-leaping ten swans a-milking ten swans a-leaping ten maids a-milking ten maids a-leaping ten lords a-milking ten lords a-leaping eleven turtle piping eleven French piping eleven ladies piping eleven pipers piping twelve turtle piping twelve French piping twelve ladies piping twelve pipers piping eleven drummers a-laying eleven drummers drumming twelve drummers a-laying twelve drummers drumming ```