lrange(a, b) := makelist(i, i, a, b)$ suffixify(n) := block( suffixes: ["'st", "'nd", "'rd"], lastd: mod(n, 10), last2d: mod(n, 100), sflag: member(lastd, lrange(1, 3)), suffix: if sflag and last2d#10+lastd then suffixes[lastd] else "'th", sconcat(n, suffix) )$ test_nums: append(lrange(0, 25), lrange(250, 265), lrange(1000, 1025))$ map(suffixify, test_nums);