Index finite lists of positive integers: Difference between revisions

m
→‎{{header|REXX}}: added comments, added whitespace, used more decimal digits and a bigger integer, added wording to the REXX section header..
(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:
 
=={{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. */
parse arg L$ /*obtain optional argument (int list).*/
if L$='' | $="," then L$=3 14 159 2653589793238 265358979323846 /*Not specified? Then use the default.*/
L=translate(space(L), ',', " ") /*use a[↑] commatizedkinda use listdecimal digits of integerspi. */
numeric$= digits maxtranslate(9, 2*lengthspace(L)$), ',', " ") /*ensureuse enougha dec. digitscommatized to handlelist of integers. L*/
numeric digits max(9, 2 * length($) ) /*ensure enough dec. digits to handle $*/
 
say 'original list=' L $ /*display the original list of integers*/
N= rank(L$); say ' map integer=' N N /*generate and display the map integer.*/
O= unrank(N); say ' unrank=' O O /*generate original integer and display*/
exit /*stick a fork in it, we're all done. */
/*──────────────────────────────────────────────────────────────────────────────────────*/
rank: return x2d( translate( space( arg(1) ), 'c', ",") )
unrank: return space( translate( d2x( arg(1) ), ',', "C") )</lang>
{{out|output|text=&nbsp; when using the default input:}}
<pre>
original list= 3,14,159,2653589793238265358979323846
map integer= 7263356319598466480165330418594192178172074189223245894
unrank= 3,14,159,2653589793238265358979323846
</pre>