N'th: Difference between revisions

1,181 bytes added ,  6 months ago
Add SETL
(→‎Joy: add)
(Add SETL)
Line 4,296:
</pre>
 
=={{header|SETL}}==
<syntaxhighlight lang="setl">program nth;
loop for r in [[0..25], [250..265], [1000..1025]] do
showrange(r);
end loop;
 
proc showrange(r);
i := 0;
loop for s in [nth(n) : n in r] do
putchar(rpad(s, 8));
if (i +:= 1) mod 6 = 0 then print(); end if;
end loop;
print();
end proc;
 
proc nth(n);
sfx := {[1,"st"], [2,"nd"], [3,"rd"]};
return str n +
if n div 10 mod 10 = 1
then "th"
else sfx(n mod 10) ? "th"
end if;
end proc;
end program;</syntaxhighlight>
{{out}}
<pre>0th 1st 2nd 3rd 4th 5th
6th 7th 8th 9th 10th 11th
12th 13th 14th 15th 16th 17th
18th 19th 20th 21st 22nd 23rd
24th 25th
250th 251st 252nd 253rd 254th 255th
256th 257th 258th 259th 260th 261st
262nd 263rd 264th 265th
1000th 1001st 1002nd 1003rd 1004th 1005th
1006th 1007th 1008th 1009th 1010th 1011th
1012th 1013th 1014th 1015th 1016th 1017th
1018th 1019th 1020th 1021st 1022nd 1023rd
1024th 1025th</pre>
=={{header|Set lang}}==
Due to the language's specification, the input can only contain one character. Therefore, the following code only works with 0-9.
2,093

edits