Linda, I know Henry already provided to you the example that you were seeking. Regarding the error, stp is a verb I used for comparing the performance of sentences and I defined it earlier in the thread (see, http://www.jsoftware.com/pipermail/programming/2016-January/044104.html )
Pepe (aka Jose) On Thu, Jan 21, 2016 at 9:50 PM, Linda A Alvord <[email protected]> wrote: > Jose, I'm looking for amonadic example where @ and @: have different > results. I thought your example might work, but I can't figure out how it > works: > Here's a script until an error: > > Y=:'mississippi' > f=: 13 :'/:/:y' > g=: 13 :'/:@/:y' > h=: 13 :'/:@:/:y' > (f Y)-:g Y > 1 > (f Y)-:h Y > 1 > > Y=. 6666$'Mississippi' > > 11 stp noun define > ([: /: /:)Y > /: @: /: Y > ) > |value error: stp > | 11 stp noun define > |[-12] c:\users\user\j804-user\temp\10.ijs > > > Linda > > > -----Original Message----- > From: Programming [mailto:[email protected]] On > Behalf Of Jose Mario Quintana > Sent: Thursday, January 21, 2016 4:22 PM > To: Programming forum > Subject: Re: [Jprogramming] A Different Less? > > The following confirms and quantifies the effect of triggering special > code (in one instance). > > Y=. 6666$'Mississippi' > > 11 stp noun define > ([: /: /:)Y > /: @: /: Y > ) > ┌──────────────┬──────┬──────────────┬──────────┐ > │Sentence │Space │Time │Product │ > ├──────────────┼──────┼──────────────┼──────────┤ > │([: /: /:)Y│198400│0.000115393909│22.8941515│ > ├──────────────┼──────┼──────────────┼──────────┤ > │ /: @: /: Y│71424 │3.1391718e_5 │2.24212206│ > └──────────────┴──────┴──────────────┴──────────┘ > > > On Wed, Jan 20, 2016 at 5:06 PM, Henry Rich <[email protected]> wrote: > > > Right, but I noticed that she was using 13 : using /: /: y & wasn't > > sure she was aware of an issue. > > > > Moreover, I find that ([: /: /:) is NOT special; surprising, because > > usually when u@:v y is fast, ([: u v) y is too; not here. > > > > The definitive list of special code is at > > > > > > http://code.jsoftware.com/wiki/Vocabulary/SpecialCombinations#Sorting_ > > and_Ordering > > > > > > Henry Rich > > > > > > > > > > On 1/20/2016 7:50 AM, Mike Day wrote: > > > >> I wasn't advocating /:/: . I prefer using @ but the 13 : ' .... ' > >> had produced [:/:/: . Conicidentally, Linda appears to > >> favour the [:u v idiom to u@v . > >> > >> So, for Linda's benefit, does [:/:/: not also benefit from special > >> code? > >> > >> Mike > >> > >> On 20/01/2016 12:29, Henry Rich wrote: > >> > >>> Note: /:@/: y is better than /: /: y (special code) > >>> > >>> Henry Rich > >>> > >>> On 1/20/2016 5:45 AM, Mike Day wrote: > >>> > >>>> Maybe simpler but it requires evaluation of /:/:y twice, whereas > >>>> Raul's oc manages to make rank the right hand argument to (] - {) . > >>>> > >>>> This tacitisation might be what you're looking for: > >>>> 13 :'r-(i.~ y){ r =./:/:y' > >>>> > >>>> i.~ (] - {) [: /: /: > >>>> > >>>> > >>>> It reproduces oc except for using [: rather than @ ! > >>>> > >>>> Mike > >>>> > >>>> On 20/01/2016 10:27, Linda A Alvord wrote: > >>>> > >>>>> A simpler f: > >>>>> > >>>>> f=: 13 :'(/:/:y)-(i.~ y){/:/:y' > >>>>> f > >>>>> ([: /: /:) - i.~ { [: /: /: > >>>>> > >>>>> Linda > >>>>> -----Original Message----- > >>>>> From: Programming > >>>>> [mailto:[email protected]] > >>>>> On Behalf Of Linda A Alvord > >>>>> Sent: Wednesday, January 20, 2016 3:15 AM > >>>>> To: [email protected] > >>>>> Subject: Re: [Jprogramming] A Different Less? > >>>>> > >>>>> Here's another way to write the code that so far is the fastest. > >>>>> How does it compare? > >>>>> > >>>>> A=:'abcabbe' > >>>>> B=:'babe' > >>>>> f=: 13 :'(/:/:y)-(y i. y){/:/:y' > >>>>> g=: 13 :'((f x)>: (( ~.y)i.x){(#/.~y),0: y)#x' > >>>>> A g B > >>>>> cab > >>>>> f > >>>>> ([: /: /:) - i.~ { [: /: /: > >>>>> g > >>>>> [ #~ ([: f [) >: ([ i.~ [: ~. ]) { ([: #/.~ ]) , [: 0: ] > >>>>> > >>>>> Linda > >>>>> > >>>>> -----Original Message----- > >>>>> From: Programming > >>>>> [mailto:[email protected]] > >>>>> On Behalf Of Raul Miller > >>>>> Sent: Monday, January 18, 2016 12:51 PM > >>>>> To: Programming forum > >>>>> Subject: Re: [Jprogramming] A Different Less? > >>>>> > >>>>> Hmm... > >>>>> > >>>>> A bugfixed version of my previous implementation (it broke when x > >>>>> -. y was empty) performs approximately the same, for me: > >>>>> > >>>>> cle=: ,~ #~ i.@#@,~ e. [: ; (2*#/.~@]) (}.&.>~ #@[ {. ])~ (]i.,~) > </. > >>>>> i.@#@,~ > >>>>> > >>>>> I say approximately, because timing variations mean that when I > >>>>> test on the same data, sometimes it's faster and sometimes it's > >>>>> slower than > >>>>> > >>>>> oc=: i.~ (] - {) /:@/: > >>>>> cless =: [ #~ oc@:[ >: (i.~~.) { (#/.~,0:)@] > >>>>> > >>>>> That said, Boss's implementation is clearly more concise... > >>>>> > >>>>> Thanks, > >>>>> > >>>>> -- > >>>>> Raul > >>>>> > >>>>> > >>>>> > >>>>> On Mon, Jan 18, 2016 at 12:17 PM, Marshall Lochbaum < > >>>>> [email protected]> wrote: > >>>>> > >>>>>> That's a very cool solution, and much quicker than the one based > >>>>>> on progressive index-of. Instead of taking the occurrence count > >>>>>> of both x and y, it just takes the count for x and compares it to > >>>>>> the total number of occurrences in y, given by (#/.~). > >>>>>> > >>>>>> Here's a comparison of the two methods. It turns out in the > >>>>>> version based on progressive index-of, the desired verb can be > >>>>>> obtained just from replacing (i.) with (-.) and then using the > >>>>>> first column of the result to select from x, so I've used that > version. > >>>>>> > >>>>>> NB. Shared verb for occurrence count > >>>>>> oc=: i.~ (] - {) /:@/: > >>>>>> NB. Simplified form of what Roger and I posted > >>>>>> cless1 =: [ {~ [: {."1 #@[ ({. -.&(,.oc) }.) [ i. , > >>>>>> NB. Tacitized R.E. Boss solution > >>>>>> cless2 =: [ #~ oc@:[ >: (i.~~.) { (#/.~,0:)@] > >>>>>> > >>>>>> NB. test data > >>>>>> 'a b' =. 500 ({.;~}.) +&(1e5 ?@$ 26)&.(a.&i.) 'a' > >>>>>> 10 (6!:2) 'a cless1 b' > >>>>>> 0.0178952 > >>>>>> 10 (6!:2) 'a cless2 b' > >>>>>> 0.0063745 > >>>>>> a (cless1 -: cless2) b > >>>>>> 1 > >>>>>> > >>>>>> To summarize, here's the fastest solution so far: > >>>>>> oc=: i.~ (] - {) /:@/: > >>>>>> cless =: [ #~ oc@:[ >: (i.~~.) { (#/.~,0:)@] > >>>>>> > >>>>>> Marshall > >>>>>> > >>>>>> On Mon, Jan 18, 2016 at 03:49:46PM +0000, R.E. Boss wrote: > >>>>>> > >>>>>>> I'm getting old, but still remember my solution, improved by Hui: > >>>>>>> > >>>>>>> http://www.jsoftware.com/pipermail/general/2004-May/017503.html > >>>>>>> > >>>>>>> 'abcabbe' strikeb2 'babe' > >>>>>>> cab > >>>>>>> > >>>>>>> Curious how it performs compared to the other solutions. > >>>>>>> > >>>>>>> > >>>>>>> R.E. Boss > >>>>>>> > >>>>>>> > >>>>>>> -----Original Message----- > >>>>>>>> From: Programming > >>>>>>>> [mailto:[email protected]] > >>>>>>>> On Behalf Of June Kim (???) > >>>>>>>> Sent: maandag 18 januari 2016 5:19 > >>>>>>>> To: Programming forum <[email protected]> > >>>>>>>> Subject: [Jprogramming] A Different Less? > >>>>>>>> > >>>>>>>> Hello > >>>>>>>> > >>>>>>>> I am looking for a verb(cless) that does something similar to > >>>>>>>> Less(-.) but counting the elimination, for example: > >>>>>>>> > >>>>>>>> 'abcabbe' -. 'abbe' > >>>>>>>> > >>>>>>>> c > >>>>>>>> > >>>>>>>> 'abcabbe' cless 'babe' NB. get rid of y letters counting > >>>>>>>> the occurrences > >>>>>>>> > >>>>>>>> 'cab' > >>>>>>>> > >>>>>>>> > >>>>>>>> It is easier to define such a verb recursively: 'abcabbe' cless > >>>>>>>> 'babe' > >>>>>>>> equald to 'e' cless~ 'b' cless~ 'a' cless~ 'b' cless~ 'abcabbe' > >>>>>>>> > >>>>>>>> > >>>>>>>> I think recursive definition isn't a usual J-ic approach. > >>>>>>>> > >>>>>>>> > >>>>>>>> How would you implement such a verb elegantly(with which I mean > >>>>>>>> short)? > >>>>>>>> > >>>>>>>> > >>>>>>>> June > >>>>>>>> --------------------------------------------------------------- > >>>>>>>> ---- > >>>>>>>> --- 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 > >>>>> > >>>> > >>>> > >>>> --- > >>>> This email has been checked for viruses by Avast antivirus software. > >>>> https://www.avast.com/antivirus > >>>> > >>>> ------------------------------------------------------------------- > >>>> --- For information about J forums see > >>>> http://www.jsoftware.com/forums.htm > >>>> > >>> > >>> -------------------------------------------------------------------- > >>> -- For information about J forums see > >>> http://www.jsoftware.com/forums.htm > >>> > >> > >> > >> --- > >> This email has been checked for viruses by Avast antivirus software. > >> https://www.avast.com/antivirus > >> > >> --------------------------------------------------------------------- > >> - 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
