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 <tmcguir...@gmail.com> 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 > <programm...@jsoftware.com> 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