Index finite lists of positive integers: Difference between revisions
Content added Content deleted
SqrtNegInf (talk | contribs) (Added Perl example, 1st part) |
m (→{{header|REXX}}: added comments, added whitespace, used more decimal digits and a bigger integer, added wording to the REXX section header..) |
||
Line 636: | Line 636: | ||
=={{header|REXX}}== |
=={{header|REXX}}== |
||
This REXX version can handle any sized (decimal) positive integers. |
|||
<lang rexx>/*REXX program assigns an integer for a finite list of arbitrary positive integers. */ |
<lang rexx>/*REXX program assigns an integer for a finite list of arbitrary positive integers. */ |
||
parse arg |
parse arg $ /*obtain optional argument (int list).*/ |
||
if |
if $='' | $="," then $=3 14 159 265358979323846 /*Not specified? Then use the default.*/ |
||
/* [↑] kinda use decimal digits of pi.*/ |
|||
$= translate( space($), ',', " ") /*use a commatized list of integers. */ |
|||
numeric digits max(9, 2 * length($) ) /*ensure enough dec. digits to handle $*/ |
|||
say 'original list=' |
say 'original list=' $ /*display the original list of integers*/ |
||
N=rank( |
N= rank($); say ' map integer=' N /*generate and display the map integer.*/ |
||
O=unrank(N); say ' unrank=' |
O= unrank(N); say ' unrank=' O /*generate original integer and display*/ |
||
exit /*stick a fork in it, we're all done. */ |
exit /*stick a fork in it, we're all done. */ |
||
/*──────────────────────────────────────────────────────────────────────────────────────*/ |
/*──────────────────────────────────────────────────────────────────────────────────────*/ |
||
rank: return x2d( translate( space( arg(1) ), 'c', ",") ) |
rank: return x2d( translate( space( arg(1) ), 'c', ",") ) |
||
unrank: return space( translate( d2x( arg(1) ), ',', "C") )</lang> |
unrank: return space( translate( d2x( arg(1) ), ',', "C") )</lang> |
||
{{out|output|text= when using the default input:}} |
{{out|output|text= when using the default input:}} |
||
<pre> |
<pre> |
||
original list= 3,14,159, |
original list= 3,14,159,265358979323846 |
||
map integer= |
map integer= 18594192178172074189223245894 |
||
unrank= 3,14,159, |
unrank= 3,14,159,265358979323846 |
||
</pre> |
</pre> |
||