The Rexx language has no such distinctions. Strings are strings, numbers
are strings that match the definition of a Rexx number. I wrote the code, I
do know how it works. There is absolutely no difference between

a = 10

and

a = '10'

The both produce the same result (although there's some hidden optimization
going on under the covers that is hidden from the programmer). The choice
of quoting the value or not is exactly that...a choice.

Rick

On Mon, May 14, 2018 at 1:41 PM, CV Bruce <[email protected]> wrote:

> It’s pretty clear that in all your test cases, the data is being treated
> as text.
>
> If the cases where the data is in the format of “testxx” it will always be
> treated as a text string. Specifying just that portion of the variable that
> is numeric doesn’t override that.
>
> In the case where you array contains just numbers, when you created the
> array you quoted all the numbers you assigned to the array thereby telling
> Rexx that you wanted those values treated as text strings.
>
> Bottom line, just because something looks like a number doesn’t mean that
> Rexx has the context to treat it as a number.  For example if a variable
> looks like a number and then has an arithmetic operation performed on it,
> Rexx has enough context to treat the variable as a number.
> X='-2' <— text string
> X=X+0 <— Ok, it’s now a number.
> X=-2 <— Number
> X=X||” ” <— Ok, you want a text string
>
> As to:
> > For all the other comparison operators, if both terms are numeric, the
> String
> > class does a numeric comparison (ignoring, for example, leading zeros
>
> Rexx doesn’t know that it is a number until you tell it, it is a number.
> You loaded the array with text strings, and didn’t tell it otherwise so it
> compared them as text strings.
>
> Bruce
>
> > On May 14, 2018, at 9:59 AM, Leslie Turriff <[email protected]> wrote:
> >
> >       I need to sort an array of strings by their signed numeric
> suffixes, but I'm
> > getting some strange results from sort and sortWith.  I have attached my
> V4.2
> > test program; together with its output.
> >
> >       Section 5.1.3.8 of the Language Reference says,
> > 'The strict comparison operators do not attempt to perform a numeric
> > comparison on the two operands.
> > For all the other comparison operators, if both terms are numeric, the
> String
> > class does a numeric comparison (ignoring, for example, leading zeros—
> see
> > Section 10.4, “Numeric Comparisons”).'
> >
> >       Section 10.4 says,
> > 'Numeric values are compared by subtracting the two numbers (calculating
> the
> > difference) and then comparing the result with 0. That is, the operation:
> >   A ? Z
> > where ? is any numeric comparison operator, is identical with:
> >   (A - Z) ? "0"
> > It is, therefore, the difference between two numbers, when subtracted
> under
> > Rexx subtraction rules, that determines their equality.'
> >
> >       Further, Section 10 says,
> > 'Numbers can be expressed flexibly. Leading and trailing whitespace
> characters
> > are permitted, and
> > exponential notation can be used. Valid numbers are, for example:
> >
> >  Example 10.1. Numbers
> >
> >   12               /* a whole number                         */
> >   "-76"            /* a signed whole number                  */
> >     12.76             /* decimal places                      */
> >     " + 0.003 "       /* blanks around the sign and so forth */
> >     17.               /* same as 17                          */
> >     .5                /* same as 0.5                         */
> >     4E9               /* exponential notation                */
> >     0.73e-7           /* exponential notation                */
> >
> > A number in Rexx is defined as follows:
> >
> >>> -+------------+--+----------------------+--+-digits--------+
> ---------->
> >      +-whitespace-+ +-sign--+------------+-+ +-digits.digits-+
> >                                 +-whitespace-+    +-.digits-------+
> >                                                   +-digits.-------+
> >> --+------------+--------------------------------------------------><
> >      +-whitespace-+
> >
> > whitespace
> >     are one or more blanks or horizontal tab characters.
> > sign
> >     is either + or -.
> > digits
> >     are one or more of the decimal digits 0-9.'
> >
> >       However, in section 5.3.18, Sorting Arrays, we see that
> > 'The sort method orders the strings by using the compareTo method of the
> > String class. The compareTo method knows how to compare one string to
> > another, and returns the values -1 (less than), 0 (equal), or 1 (greater
> > than) to indicate the relative ordering of the two strings.'
> >
> > and
> > 'Performs a sort comparison of the target string to the string argument.
> If
> > the two strings are equal, 0 is returned. If the target string is
> larger, 1
> > is returned. -1 if the string argument is the larger string.
> > The comparison is performed starting at character n for length
> characters in
> > both strings. n must be a positive whole number. If n is omitted, the
> > comparison starts at the first character. length must be a non-negative
> whole
> > number. If omitted, the comparison will take place to the end of the
> target
> > string.'
> >
> > which seems to imply a character comparison; and the examples for
> compareTo
> > include no numeric strings.
> >
> >       Looking at the output from the test program, ooRexx seems to be
> sorting
> > signed numeric strings non-numerically (+ < - < 0), contrary to what
> would be
> > expected from section 10.  This seems to me to be a bug?  I would not
> expect
> > to have to write a custom comparator to re-implement a built-in
> mechanism.
> >
> > Leslie
> >
> >
> >
> > <testSort.txt><testSort.txt>--------------------------------
> ----------------------------------------------
> > Check out the vibrant tech community on one of the world's most
> > engaging tech sites, Slashdot.org! http://sdm.link/slashdot______
> _________________________________________
> > Oorexx-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/oorexx-devel
>
>
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Oorexx-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/oorexx-devel
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Oorexx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to