Thanks,
you are, of course, correct, and I should have thought about it a bit more. I
am trying to make string comparison verbs
and this will make the solution a little more ugly.
lessThan=: ({.@:sort -: {.)@:;
'abc' lessThan 'def'
1
'z' lessThan 'ab'
1
Needs a little more work for literals with no rank.
]`(1&$)@.((''&-:)@:$) 'z'
As far as I can see there is no string comparison in the J stdlib.
Thanks,
Jon
On Friday, March 13, 2020, 03:12:48 PM GMT+9, Thomas McGuire
<[email protected]> wrote:
The first 2 of the list have no rank.
$ each words
$ each words
┌┬┬─┬─┬─┬─┐
│││3│3│4│4│
└┴┴─┴─┴─┴─┘
words =: (1$'a');(1$'z');'zza';'abc';'zabc';’abbb'
$ each words
┌─┬─┬─┬─┬─┬─┐
│1│1│3│3│4│4│
└─┴─┴─┴─┴─┴─┘
sort words
┌─┬────┬───┬─┬────┬───┐
│a│abbb│abc│z│zabc│zza│
└─┴────┴───┴─┴────┴───┘
Above if I give everything a 1 dimensional rank it works as you would expect.
Single letter in quotes is not a string
It happens with single numbers as well:
b =:1
$b
No output back
Tom McGuire
> On Mar 13, 2020, at 1:19 AM, 'Jon Hough' via Programming
> <[email protected]> wrote:
>
> words =: 'a';'z';'zza';'abc';'zabc';'abbb'
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm