N'th: Difference between revisions
Content added Content deleted
(→Joy: add) |
Not a robot (talk | contribs) (Add SETL) |
||
Line 4,296: | Line 4,296: | ||
</pre> |
</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}}== |
=={{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. |
Due to the language's specification, the input can only contain one character. Therefore, the following code only works with 0-9. |