# [Zsh](https://www.zsh.org) `-y`, <sup><s>412</s></sup> 383 bytes <pre><code class="lang-bash">for x y (first two-turtle-doves second three-french-hens third `for a b (four call\ -birds five golden-r\ s six geese-a-lay seven swans-a-swimm eight maids-a-milk nine ladies-danc ten lords-a-leap eleven pipers-pip twelve drummers-drumm)()(<<<$a-$1ing$2\ ${${a%[et]}/%v/f}th) $b`)<<<"On the $x day of Christmas my true love gave to me $1a partridge in a pear tree "&&1="$y ${1-and-}"</code></pre> [Attempt This Online!](https://ato.pxeger.com/run?1=LVFLbsIwEFW3PsUoMogsLJSuuqCrHqAHACSGeJJY9SfyOIEUoR6kG6SqPVRPU0PZzBs9vzf283x-vXP3sy7UVGwv30Nq1NPvw0cTIhxhgkVjIieRDkGlISZLSoeRGJjq4LVIXSRSTSRfd6ojz5A6E7XYXf0I--wPQ4Qard2A2ucjFo0ZCdpgNXkVN8CCzRFaIiaFyuIkmEbywAf0nBk-GOcEmbZL4NDoK-eMfRPeeAKL2hArjb4WKbtsiDeFJewF2duk3vQUWWXIOcjm23UcnLtyt6ZclIvVaiVRycr4Vj5uQJ7kCWdrStvzcjYum3PqSpD7XZl1xavPKQnkETROEBp46aLh5JCFmyDFIT8rXDNiLimAIyErhB5jika3BMbnv-kJYxYTiWI-r54LOQl5qhR6rc7F_x7u67jc8Q8) This may be the first time I've used Zsh's anonymous functions in golf. By combining it with the `-y` option, I can conveniently split `$b` into `$1` and `$2`. Makes use of some interesting symmetries: - all the gifts (starting with the fourth) contain `ing` - fi**ve** -> fi**f**th; twel**ve** -> twel**f**th (that's a mini-etymology lesson for you) - nin**e** -> ninth; eigh**t** -> eighth