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

Reply via email to