13 lines
387 B
Text
13 lines
387 B
Text
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);
|