I think I finally understand the difference!

    A=:'a man a plan a canal'
   ;:A
┌─┬───┬─┬────┬─┬─────┐
│a│man│a│plan│a│canal│
└─┴───┴─┴────┴─┴─────┘
   f=: 13 :'#>;:y'
   g=: 13 :'#@>;:y'
   h=: 13 :'#@:>;:y'
   f A
6
   g A
1 3 1 4 1 5
   h A
6
   f 
[: # [: > ;:
   g
[: #@> ;:
   h
[: #@:> ;:
   5!:4 <'f'
  ┌─ [:     
  ├─ #      
──┤    ┌─ [:
  └────┼─ > 
       └─ ;:
   5!:4 <'f'
  ┌─ [:     
  ├─ #      
──┤    ┌─ [:
  └────┼─ > 
       └─ ;:
   i=: 13 :'(#+>);:y'
Caution:  This is a fake answer but I like it.

  5!:4 <'i'
  ┌─ [:    
  │    ┌─ #
──┼────┼─ @:
  │    └─ >
  └─ ;:    
   

Thanks For your patience with me.  Linda
-----Original Message-----
From: Programming [mailto:[email protected]] On Behalf 
Of Henry Rich
Sent: Thursday, January 21, 2016 10:58 PM
To: [email protected]
Subject: Re: [Jprogramming] A Different Less?

#@> ;: 'a man a plan a canal'

1 3 1 4 1 5

#@:> ;: 'a man a plan a canal'

6


Henry Rich


On 1/21/2016 9:50 PM, Linda A Alvord 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

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to