#@> ;: '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

Reply via email to