I was initially puzzled by what you meant by "/: doesn't really work for unicode".
But then I realized, that while things like... $u: 9824 9829 9830 9827 4 u: 9824 9829 9830 9827 ♠♥♦♣ /: u: 9824 9829 9830 9827 0 3 1 2 ... do work, it is possible to sort the octets of the utf-8 representation of unicode and that can result in a non-unicode sequence of octets. /: 8 u: u: 9824 9829 9830 9827 1 4 7 10 2 11 5 8 0 3 6 9 /:~ 8 u: u: 9824 9829 9830 9827 [garbage] Then again, you do not need to sort the octets and expect them to be meaningful unicode. /: 7 u: 8 u: u: 9824 9829 9830 9827 0 3 1 2 That said, this kind of a distinction matters quite a lot to implementers and is likely to escape the awareness of people doing the specifications. Thanks, -- Raul On Thu, Nov 13, 2014 at 11:35 AM, 'Pascal Jasmin' via Programming <[email protected]> wrote: > /: doesn't really work for unicode, unless you convert unicode into an > integer mapping and then use that as x for /: > > /: has the advantage of working with boxed data, or "records"/lists > > With those limitations we could think of using ,:&(a.&i.)&": to build numeric > arrays to compare, but that runs into rank quirks with single "character" > left sides, so boxing seems simpler with: > > '3'([: ,/&> ,&<&(a.&i.)&":) '3a' > 51 0 > 51 97 > > > You gain the "benefit" of being able to treat original integers as strings. > > comparing then with < and > is a little harder due to handling tie breaks, > and you are duplicating the real work of /: in doing so? > > '3'([: * [: -~/ 1 i."1~ [: (</ ,: >/ ) [: ,/&> ,&<&(a.&i.)&":) '3a' > > > ----- Original Message ----- > From: bill lam <[email protected]> > To: Programming forum <[email protected]> > Cc: > Sent: Thursday, November 13, 2014 8:11 AM > Subject: Re: [Jprogramming] Need analog strcmp-function verb > > Sorting is an expensive operation. Could it be only once? > > On Thu, Nov 13, 2014 at 8:43 PM, Henry Rich <[email protected]> wrote: >> strcmp =: (\: -&{. /:)@,&< >> >> Henry Rich >> >> >> On 11/13/2014 5:35 AM, Jan-Pieter Jacobs wrote: >>> >>> J has total ordering (meaning anything can be sorted): >>> http://www.jsoftware.com/jwiki/Essays/The%20TAO%20of%20J >>> >>> Using the verbs listed there you can define: >>> >>> strcmp =: _1 0 1 #~ gt , eq , lt >>> gt =: 1 0 -: /:@,&< >>> eq =: -:!.0 >>> lt =: 1 0 -: \:@,&< >>> >>> ('a a a ac') strcmp&>&:;: 'ab aa a ab' >>> >>> 1 >>> >>> 1 >>> >>> 0 >>> >>> _1 >>> >>> >>> 2014-11-13 11:16 GMT+01:00 Sergey Kamenev <[email protected]>: >>> >>>> Hello folks! >>>> >>>> Need strcmp verb >>>> http://php.net/manual/function.strcmp.php >>>> >>>> 'a' strcmp 'ab' >>>> 1 >>>> >>>> 'a' strcmp 'aa' >>>> 1 >>>> >>>> 'a' strcmp 'a' >>>> 0 >>>> >>>> 'ac' strcmp 'ab' >>>> _1 >>>> >>>> May be you have implementation of this verb? >>>> >>>> Thank you! >>>> Sergey >>>> ---------------------------------------------------------------------- >>>> For information about J forums see http://www.jsoftware.com/forums.htm > > > >>>> >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm >>> >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
