Yes there is...-10 is a number and an operator, while "-10" is just a
string that happens to be a negative number.

Rick

On Mon, May 14, 2018 at 5:20 PM, Leslie Turriff <[email protected]> wrote:

> 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
>
------------------------------------------------------------------------------
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