cl-user> (ls :l)
- 425 Dec 23 19:54 partridge.lisp
- 2374 Dec 23 19:50 partridge.txt
- 476 Dec 23 19:27 partridge.txt.bz2
; No value
cl-user> (cat "partridge.lisp")
(loop with w ='("partridge in a pear tree""turtle doves""French hens""calling birds""golder rings""geese a-laying""swans a-swimming""maids a-milking""ladies dancing""lords a-leaping""pipers piping""drummers drumming")with s ="."for n from 1 to 12 do(format t"~%On the ~:R day of Christmas my true love gave to me "n)(setf s(format()"~:[,~; and~] ~A"(= n 1)(write-line(setf s(format()"~:[~R~;~*a~] ~A~A"(= n 1)n(pop w)s))))))
; No value
cl-user> (load "partridge.lisp")
On the first day of Christmas my true love gave to me a partridge in a pear tree.
On the second day of Christmas my true love gave to me two turtle doves and a partridge in a pear tree.
On the third day of Christmas my true love gave to me three French hens, two turtle doves and a partridge in a pear tree.
On the fourth day of Christmas my true love gave to me four calling birds, three French hens, two turtle doves and a partridge in a pear tree.
On the fifth day of Christmas my true love gave to me five golder rings, four calling birds, three French hens, two turtle doves and a partridge in a pear tree.
On the sixth day of Christmas my true love gave to me six geese a-laying, five golder rings, four calling birds, three French hens, two turtle doves and a partridge in a pear tree.
On the seventh day of Christmas my true love gave to me seven swans a-swimming, six geese a-laying, five golder rings, four calling birds, three French hens, two turtle doves and a partridge in a pear tree.
On the eighth day of Christmas my true love gave to me eight maids a-milking, seven swans a-swimming, six geese a-laying, five golder rings, four calling birds, three French hens, two turtle doves and a partridge in a pear tree.
On the ninth day of Christmas my true love gave to me nine ladies dancing, eight maids a-milking, seven swans a-swimming, six geese a-laying, five golder rings, four calling birds, three French hens, two turtle doves and a partridge in a pear tree.
On the tenth day of Christmas my true love gave to me ten lords a-leaping, nine ladies dancing, eight maids a-milking, seven swans a-swimming, six geese a-laying, five golder rings, four calling birds, three French hens, two turtle doves and a partridge in a pear tree.
On the eleventh day of Christmas my true love gave to me eleven pipers piping, ten lords a-leaping, nine ladies dancing, eight maids a-milking, seven swans a-swimming, six geese a-laying, five golder rings, four calling birds, three French hens, two turtle doves and a partridge in a pear tree.
On the twelfth day of Christmas my true love gave to me twelve drummers drumming, eleven pipers piping, ten lords a-leaping, nine ladies dancing, eight maids a-milking, seven swans a-swimming, six geese a-laying, five golder rings, four calling birds, three French hens, two turtle doves and a partridge in a pear tree.
#P"/Users/pjb/tmp/misc/partridge.lisp"
cl-user>

Here’s a little C program (there are a couple of Obfuscated C competition programs that are worth a look). Not quite as short as Pascal’s (hard to compete with a language with built-in printing of numbers as ordinals):