There seems to be a difference between -10 and "-10", though. :-)

On 2018-05-14 15:43:59 Rick McGuire wrote:
> 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