I figured you were generating these from higher level "language".  The output 
is a bit hard to digest though.

Do you have a solution for making this tacit? (or version close to it ... where 
items of y and x have different shapes)

reducE =: 1 : (':'; 'o=. x for_i. y do. o =. o u i end.')

I have this similar solution (inverted xy) with boxing:

boxscan =: ((&.>)/)(>@:)
reduce =: 1 : '<"_1@[ ([: u boxscan ,) <@:]' 


The list has brought this up before, but is a foreign to do this something easy 
and worthwhile?  



----- Original Message -----
From: Jose Mario Quintana <jose.mario.quint...@gmail.com>
To: Programming forum <programm...@jsoftware.com>
Cc: 
Sent: Monday, April 27, 2015 7:45 PM
Subject: Re: [Jprogramming] Permutations with repeats (combinations?)

Right, this is because "I did not make any effort to simplify or to try to
optimize the tacit verbs"  The tools I used to produce the tacit versions
are meant for general cases (for instance, permitting boxed arguments);
specific cases can allow for specific simplifications (and optimizations).
I did not try for three reasons: I wanted to know what would be the penalty
in performance for the row versions; I wanted to preserve Boss' melodies as
much as possible; and I was not interested or motivated to make the effort
to try.  Your versions are, literally, very neat particularly when compared
to those I presented; but, my current interest is in the opposite: how to
produce effortlessly and generally tacit verbs versions of explicit verbs .


Knocking it up another notch: with the aid of my wicked adverb mu and other
tools, running in a Jx interpreter, it is becoming almost boring for me to
convert a fairly large class of explicit verbs and I can see already that
it could be done with even less effort.  There is an overhead, which is
expected, but typically it fades away when the verbs take large amount of
data (which is key for verb, explicit or tacit, performance anyway).  The
following is an execution of tacit transcriptions that are even more
closely related to the original explicit versions (the definitions of most
of these tools are not shown here but I have done so before for many of
them):

   oan=. o (an&>)

   set'X Y D K Z'
0 1 2 3 4

   combt2=. [tv d f.
  '. . .'ln

  (K h ([: dd 'i.>:dd' mu oan o (D ff))) o (D h ([: yy xx 'yy - xx' mu oan
o ((Y,X)ff)))
  Z h ([: dd '(dd$<i.0 0),<i.1 0' mu oan o (D ff))
  Z h ([: kk zz 'kk ,.&.> ,&.>/\. >:&.> zz' mu oan o ((K,Z)ff)) t (X f)
  [: zz '; zz' mu oan o (Z ff)
)

    2 (combt2 -: comb) 5
1
   100 st&> ' 2 combt2 5' ; ' 2 comb  5'
┌───────────┬─────┬──────────────┬───────────┐
│ 2 combt2 5│16896│0.000263358188│4.44969995 │
├───────────┼─────┼──────────────┼───────────┤
│ 2 comb  5 │12032│2.78562153e_5 │0.335165982│
└───────────┴─────┴──────────────┴───────────┘

   11 (combt2 -: comb) 17
1
   100 st&> ' 11 combt2 17' ; ' 11 comb  17'
┌─────────────┬───────┬─────────────┬──────────┐
│ 11 combt2 17│5036928│0.00520454777│26214.9324│
├─────────────┼───────┼─────────────┼──────────┤
│ 11 comb  17 │5032064│0.00472455783│23774.2774│
└─────────────┴───────┴─────────────┴──────────┘


   set'Y A B C'
0 1 2 3

   cmbcombt2=. [tv f.
'. . .'ln o <

  A h ([: yy '|.#/.~ yy' mu oan o (Y ff))
  B h ([: aa '|.(] <@combt2"0 +/\) aa' mu oan o (A ff))
  C h ([: bb '; ([:,/  [,"1"1 _1 ]{"1"_ 1 [-.~"1 i.@(+&({:@$)))L:0/ bb' mu
oan o (B ff))
  [: yy ccc 'yy {~ /:"1 ccc' mu oan o ((Y,C)ff)
)

   (cmbcombt2 -:cmbcomb) 2#>:i.2
1
   10 st&> 'cmbcombt2 2#>:i.2' ; 'cmbcomb 2#>:i.2'
┌─────────────────┬─────┬──────────────┬──────────┐
│cmbcombt2 2#>:i.2│27136│0.000567683124│15.4046493│
├─────────────────┼─────┼──────────────┼──────────┤
│cmbcomb 2#>:i.2  │17152│9.21696831e_5 │1.58089441│
└─────────────────┴─────┴──────────────┴──────────┘

   (cmbcombt2 -:cmbcomb) 2#>:i.5
1
   10 st&> 'cmbcombt2 2#>:i.5' ; 'cmbcomb 2#>:i.5'
┌─────────────────┬────────┬────────────┬──────────┐
│cmbcombt2 2#>:i.5│50343808│0.0685517701│3451157.15│
├─────────────────┼────────┼────────────┼──────────┤
│cmbcomb 2#>:i.5  │50340352│0.0678081433│3413485.8 │
└─────────────────┴────────┴────────────┴──────────┘

   (cmbcombt2 -:cmbcomb) 2#>:i.6
1
    1 st&> 'cmbcombt2 2#>:i.6' ; 'cmbcomb 2#>:i.6'
┌─────────────────┬──────────┬──────────┬─────────────┐
│cmbcombt2 2#>:i.6│3221239680│6.6813202 │2.15221338e10│
├─────────────────┼──────────┼──────────┼─────────────┤
│cmbcomb 2#>:i.6  │3221236224│6.83664885│2.20224609e10│
└─────────────────┴──────────┴──────────┴─────────────┘

Both, combt2 and cmbcombt2 are tacit; yet, combt2 is fixed but cmbcombt2
is not completely fixed because combt2 appears in ([: aa '|.(] <@combt2"0
+/\) aa' mu) and it is not resolved.  Nevertheless, a complete fixed
version can be produced with little additional effort.  This verb
(cmbcombt2f) exhibits even more overhead but, again, it fades away as the
amounts of data increase:


   (cmbcombt2f -:cmbcomb) 2#>:i.2
1
   10 st&> 'cmbcombt2f 2#>:i.2' ; 'cmbcomb 2#>:i.2'
┌──────────────────┬──────┬─────────────┬──────────┐
│cmbcombt2f 2#>:i.2│399744│0.00108473525│433.616407│
├──────────────────┼──────┼─────────────┼──────────┤
│cmbcomb 2#>:i.2   │17152 │8.74402125e_5│1.49977453│
└──────────────────┴──────┴─────────────┴──────────┘

   (cmbcombt2f -:cmbcomb) 2#>:i.5
1
   10 st&> 'cmbcombt2f 2#>:i.5' ; 'cmbcomb 2#>:i.5'
┌──────────────────┬────────┬────────────┬──────────┐
│cmbcombt2f 2#>:i.5│50343808│0.0689236018│3469876.58│
├──────────────────┼────────┼────────────┼──────────┤
│cmbcomb 2#>:i.5   │50340352│0.0676761215│3406839.78│
└──────────────────┴────────┴────────────┴──────────┘

   (cmbcombt2f -:cmbcomb) 2#>:i.6
1
    1 st&> 'cmbcombt2f 2#>:i.6' ; 'cmbcomb 2#>:i.6'
┌──────────────────┬──────────┬──────────┬─────────────┐
│cmbcombt2f 2#>:i.6│3221239680│6.62842712│2.13517525e10│
├──────────────────┼──────────┼──────────┼─────────────┤
│cmbcomb 2#>:i.6   │3221236224│6.71277742│2.16234418e10│
└──────────────────┴──────────┴──────────┴─────────────┘




On Mon, Apr 27, 2015 at 1:12 AM, 'Pascal Jasmin' via Programming <
programm...@jsoftware.com> wrote:

> Here is a more literal tacit translation of comb.  I'm not doing
> everything you are, but unsure why its needed.  IIUC, your version puts
> everything on the right hand side of ^:
>
> combT =: ([: ; ([ ; [: i.@>: -~) ((1 {:: [) ,.&.> [: ,&.>/\.
> >:&.>@:])^:(0 {:: [)  (<i.1 0),~ (< i.0 0) $~ -~)
>
> 100 timespacex&> ' 2 combT  5' ; ' 2 combt  5'
> 1.91616e_5 5888
> 3.6608e_5 9088
>
>
> 100 timespacex&> ' 11 combT  17' ; ' 11 combt  17'
> 0.00314064 4.13094e6
> 0.00317854 4.13414e6
>
>
>
> Then there is a pretty direct mapping of RE Boss's version as it doesn't
> repeat intermediate variable use.
>
>
> cmbcombT =: ({~ [: /:"1 [: ; [: ([:,/  [,"1"1 _1 ]{"1"_ 1 [-.~"1 
> i.@(+&({:@$)))L:0/
> [: |.@:(] <@combT f."0 +/\)  [: |. #/.~)
>
> 10 timespacex&> 'cmbcomb 2#>:i.5' ; 'cmbcombT 2#>:i.5'
> 0.0584915 5.03404e7
> 0.0580249 3.38226e7
>
>
> ----- Original Message -----
> From: Jose Mario Quintana <jose.mario.quint...@gmail.com>
> To: Programming forum <programm...@jsoftware.com>
> Cc:
> Sent: Sunday, April 26, 2015 9:55 PM
>
> Subject: Re: [Jprogramming] Permutations with repeats (combinations?)
>
> Tacit vs. explicit seems to be a never-ending controversy.  May as it be,
> the following is a brute force transcription of Boss' compositions for a
> tacit interpretation:
>
>    st=. (, */&.:>@:(1 2&{))@:(] ; 7!:2@:] ; 6!:2)
>
>    ". noun define -. CRLF
>
> combt=.
>
> ;@:(4&({::))@:((<@:((3&({::) ([ ,.&.> ,&.>/\.@:(>:&.>@:])) 4&({::)
> )@:]) 4} ])^:(0&({::)))@:(<@:((<i.1 0) ,~ (<i.0 0) $~ 2&({::)) 4}
> ])@:(<@:(i.@:>:@:(2&({::))) 3} ])@:(<@:(1&({::) - 0&({::)) 2} ])@:
> ('. . .'&(] , ;:@:[))@:(,&:>/@:(<^:(L. = 0:)&.>))@:(,&<)
>
> )
>
>
>     2 (comb -: combt) 5
> 1
>
>    100 st&> ' 2 comb  5' ; ' 2 combt  5'
> ┌───────────┬─────┬──────────┬────────┐
> │ 2 comb  5 │12032│6.24855e_5│0.751825│
> ├───────────┼─────┼──────────┼────────┤
> │ 2 combt  5│9088 │9.51077e_5│0.864338│
> └───────────┴─────┴──────────┴────────┘
>
>    11 (comb -: combt) 17
> 1
>    100 st&> ' 11 comb 17' ; ' 11 combt  17'
> ┌─────────────┬───────┬──────────┬───────┐
> │ 11 comb 17  │5032064│0.0107722 │54206.5│
> ├─────────────┼───────┼──────────┼───────┤
> │ 11 combt  17│4134144│0.00735863│30421.6│
> └─────────────┴───────┴──────────┴───────┘
>
>
>    ". noun define -. CRLF
>
> cmbcombt=.
>
> (0&({::) {~ /:"1@:(3&({::)))@:(<@:(;@:(,/@:([ ,"1"1 _1 ] {"1"_ 1 [
> -.~"1 i.@(+&({:@$)))L:0/)@:(2&({::))) 3} ])@:(<@:(|.@:(] <@(;@:(4
> &({::))@:((<@:((3&({::) ([ ,.&.> ,&.>/\.@:(>:&.>@:])) 4&({::))@:])
> 4} ])^:(0&({::)))@:(<@:((<i.1 0) ,~ (<i.0 0) $~ 2&({::)) 4} ])@:(
> <@:(i.@:>:@:(2&({::))) 3} ])@:(<@:(1&({::) - 0&({::)) 2} ])@:('. .
> .'&(] , ;:@:[))@:(,&:>/@:(<^:(L. = 0:)&.>))@:(,&<))"0 +/\)@:(1&({
> ::))) 2} ])@:(<@:(|.@:(#/.~)@:(0&({::))) 1} ])@:('. . .'&(] , ;:@:
> [)@:<)
>
>
> )
>
>
>
>    (cmbcomb -:cmbcombt) 2#>:i.5
> 1
>    10 st&> 'cmbcomb 2#>:i.5' ; 'cmbcombt 2#>:i.5'
> ┌────────────────┬────────┬────────┬─────────┐
> │cmbcomb 2#>:i.5 │50340352│0.139288│7.0118e6 │
> ├────────────────┼────────┼────────┼─────────┤
> │cmbcombt 2#>:i.5│50339072│0.157125│7.90951e6│
> └────────────────┴────────┴────────┴─────────┘
>
>    (cmbcomb -:cmbcombt) 2#>:i.6
> 1
>     1 st&> 'cmbcomb 2#>:i.6' ; 'cmbcombt 2#>:i.6'
> ┌────────────────┬──────────┬───────┬──────────┐
> │cmbcomb 2#>:i.6 │3221236224│10.6752│3.43873e10│
> ├────────────────┼──────────┼───────┼──────────┤
> │cmbcombt 2#>:i.6│3221234944│11.2508│3.62415e10│
> └────────────────┴──────────┴───────┴──────────┘
>
> The associated performances are similar.  I did not make any effort to
> simplify or to try to optimize the tacit verbs.  Each assignment in the
> original explicit constructions corresponds to a form (<@:v N} ]) in the
> tacit versions with the following mappings,
>
> comb: x y d k z -> 0 1 2 3 4
> cmbcomb:  y a b c -> 0 1 2 3
>
> Needless to say, combt is embedded in cmbcombt.
>
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm 
 

----- Original Message -----
From: Jose Mario Quintana <jose.mario.quint...@gmail.com>
To: Programming forum <programm...@jsoftware.com>
Cc: 
Sent: Monday, April 27, 2015 7:45 PM
Subject: Re: [Jprogramming] Permutations with repeats (combinations?)

Right, this is because "I did not make any effort to simplify or to try to
optimize the tacit verbs"  The tools I used to produce the tacit versions
are meant for general cases (for instance, permitting boxed arguments);
specific cases can allow for specific simplifications (and optimizations).
I did not try for three reasons: I wanted to know what would be the penalty
in performance for the row versions; I wanted to preserve Boss' melodies as
much as possible; and I was not interested or motivated to make the effort
to try.  Your versions are, literally, very neat particularly when compared
to those I presented; but, my current interest is in the opposite: how to
produce effortlessly and generally tacit verbs versions of explicit verbs .


Knocking it up another notch: with the aid of my wicked adverb mu and other
tools, running in a Jx interpreter, it is becoming almost boring for me to
convert a fairly large class of explicit verbs and I can see already that
it could be done with even less effort.  There is an overhead, which is
expected, but typically it fades away when the verbs take large amount of
data (which is key for verb, explicit or tacit, performance anyway).  The
following is an execution of tacit transcriptions that are even more
closely related to the original explicit versions (the definitions of most
of these tools are not shown here but I have done so before for many of
them):

   oan=. o (an&>)

   set'X Y D K Z'
0 1 2 3 4

   combt2=. [tv d f.
  '. . .'ln

  (K h ([: dd 'i.>:dd' mu oan o (D ff))) o (D h ([: yy xx 'yy - xx' mu oan
o ((Y,X)ff)))
  Z h ([: dd '(dd$<i.0 0),<i.1 0' mu oan o (D ff))
  Z h ([: kk zz 'kk ,.&.> ,&.>/\. >:&.> zz' mu oan o ((K,Z)ff)) t (X f)
  [: zz '; zz' mu oan o (Z ff)
)

    2 (combt2 -: comb) 5
1
   100 st&> ' 2 combt2 5' ; ' 2 comb  5'
┌───────────┬─────┬──────────────┬───────────┐
│ 2 combt2 5│16896│0.000263358188│4.44969995 │
├───────────┼─────┼──────────────┼───────────┤
│ 2 comb  5 │12032│2.78562153e_5 │0.335165982│
└───────────┴─────┴──────────────┴───────────┘

   11 (combt2 -: comb) 17
1
   100 st&> ' 11 combt2 17' ; ' 11 comb  17'
┌─────────────┬───────┬─────────────┬──────────┐
│ 11 combt2 17│5036928│0.00520454777│26214.9324│
├─────────────┼───────┼─────────────┼──────────┤
│ 11 comb  17 │5032064│0.00472455783│23774.2774│
└─────────────┴───────┴─────────────┴──────────┘


   set'Y A B C'
0 1 2 3

   cmbcombt2=. [tv f.
'. . .'ln o <

  A h ([: yy '|.#/.~ yy' mu oan o (Y ff))
  B h ([: aa '|.(] <@combt2"0 +/\) aa' mu oan o (A ff))
  C h ([: bb '; ([:,/  [,"1"1 _1 ]{"1"_ 1 [-.~"1 i.@(+&({:@$)))L:0/ bb' mu
oan o (B ff))
  [: yy ccc 'yy {~ /:"1 ccc' mu oan o ((Y,C)ff)
)

   (cmbcombt2 -:cmbcomb) 2#>:i.2
1
   10 st&> 'cmbcombt2 2#>:i.2' ; 'cmbcomb 2#>:i.2'
┌─────────────────┬─────┬──────────────┬──────────┐
│cmbcombt2 2#>:i.2│27136│0.000567683124│15.4046493│
├─────────────────┼─────┼──────────────┼──────────┤
│cmbcomb 2#>:i.2  │17152│9.21696831e_5 │1.58089441│
└─────────────────┴─────┴──────────────┴──────────┘

   (cmbcombt2 -:cmbcomb) 2#>:i.5
1
   10 st&> 'cmbcombt2 2#>:i.5' ; 'cmbcomb 2#>:i.5'
┌─────────────────┬────────┬────────────┬──────────┐
│cmbcombt2 2#>:i.5│50343808│0.0685517701│3451157.15│
├─────────────────┼────────┼────────────┼──────────┤
│cmbcomb 2#>:i.5  │50340352│0.0678081433│3413485.8 │
└─────────────────┴────────┴────────────┴──────────┘

   (cmbcombt2 -:cmbcomb) 2#>:i.6
1
    1 st&> 'cmbcombt2 2#>:i.6' ; 'cmbcomb 2#>:i.6'
┌─────────────────┬──────────┬──────────┬─────────────┐
│cmbcombt2 2#>:i.6│3221239680│6.6813202 │2.15221338e10│
├─────────────────┼──────────┼──────────┼─────────────┤
│cmbcomb 2#>:i.6  │3221236224│6.83664885│2.20224609e10│
└─────────────────┴──────────┴──────────┴─────────────┘

Both, combt2 and cmbcombt2 are tacit; yet, combt2 is fixed but cmbcombt2
is not completely fixed because combt2 appears in ([: aa '|.(] <@combt2"0
+/\) aa' mu) and it is not resolved.  Nevertheless, a complete fixed
version can be produced with little additional effort.  This verb
(cmbcombt2f) exhibits even more overhead but, again, it fades away as the
amounts of data increase:


   (cmbcombt2f -:cmbcomb) 2#>:i.2
1
   10 st&> 'cmbcombt2f 2#>:i.2' ; 'cmbcomb 2#>:i.2'
┌──────────────────┬──────┬─────────────┬──────────┐
│cmbcombt2f 2#>:i.2│399744│0.00108473525│433.616407│
├──────────────────┼──────┼─────────────┼──────────┤
│cmbcomb 2#>:i.2   │17152 │8.74402125e_5│1.49977453│
└──────────────────┴──────┴─────────────┴──────────┘

   (cmbcombt2f -:cmbcomb) 2#>:i.5
1
   10 st&> 'cmbcombt2f 2#>:i.5' ; 'cmbcomb 2#>:i.5'
┌──────────────────┬────────┬────────────┬──────────┐
│cmbcombt2f 2#>:i.5│50343808│0.0689236018│3469876.58│
├──────────────────┼────────┼────────────┼──────────┤
│cmbcomb 2#>:i.5   │50340352│0.0676761215│3406839.78│
└──────────────────┴────────┴────────────┴──────────┘

   (cmbcombt2f -:cmbcomb) 2#>:i.6
1
    1 st&> 'cmbcombt2f 2#>:i.6' ; 'cmbcomb 2#>:i.6'
┌──────────────────┬──────────┬──────────┬─────────────┐
│cmbcombt2f 2#>:i.6│3221239680│6.62842712│2.13517525e10│
├──────────────────┼──────────┼──────────┼─────────────┤
│cmbcomb 2#>:i.6   │3221236224│6.71277742│2.16234418e10│
└──────────────────┴──────────┴──────────┴─────────────┘




On Mon, Apr 27, 2015 at 1:12 AM, 'Pascal Jasmin' via Programming <
programm...@jsoftware.com> wrote:

> Here is a more literal tacit translation of comb.  I'm not doing
> everything you are, but unsure why its needed.  IIUC, your version puts
> everything on the right hand side of ^:
>
> combT =: ([: ; ([ ; [: i.@>: -~) ((1 {:: [) ,.&.> [: ,&.>/\.
> >:&.>@:])^:(0 {:: [)  (<i.1 0),~ (< i.0 0) $~ -~)
>
> 100 timespacex&> ' 2 combT  5' ; ' 2 combt  5'
> 1.91616e_5 5888
> 3.6608e_5 9088
>
>
> 100 timespacex&> ' 11 combT  17' ; ' 11 combt  17'
> 0.00314064 4.13094e6
> 0.00317854 4.13414e6
>
>
>
> Then there is a pretty direct mapping of RE Boss's version as it doesn't
> repeat intermediate variable use.
>
>
> cmbcombT =: ({~ [: /:"1 [: ; [: ([:,/  [,"1"1 _1 ]{"1"_ 1 [-.~"1 
> i.@(+&({:@$)))L:0/
> [: |.@:(] <@combT f."0 +/\)  [: |. #/.~)
>
> 10 timespacex&> 'cmbcomb 2#>:i.5' ; 'cmbcombT 2#>:i.5'
> 0.0584915 5.03404e7
> 0.0580249 3.38226e7
>
>
> ----- Original Message -----
> From: Jose Mario Quintana <jose.mario.quint...@gmail.com>
> To: Programming forum <programm...@jsoftware.com>
> Cc:
> Sent: Sunday, April 26, 2015 9:55 PM
>
> Subject: Re: [Jprogramming] Permutations with repeats (combinations?)
>
> Tacit vs. explicit seems to be a never-ending controversy.  May as it be,
> the following is a brute force transcription of Boss' compositions for a
> tacit interpretation:
>
>    st=. (, */&.:>@:(1 2&{))@:(] ; 7!:2@:] ; 6!:2)
>
>    ". noun define -. CRLF
>
> combt=.
>
> ;@:(4&({::))@:((<@:((3&({::) ([ ,.&.> ,&.>/\.@:(>:&.>@:])) 4&({::)
> )@:]) 4} ])^:(0&({::)))@:(<@:((<i.1 0) ,~ (<i.0 0) $~ 2&({::)) 4}
> ])@:(<@:(i.@:>:@:(2&({::))) 3} ])@:(<@:(1&({::) - 0&({::)) 2} ])@:
> ('. . .'&(] , ;:@:[))@:(,&:>/@:(<^:(L. = 0:)&.>))@:(,&<)
>
> )
>
>
>     2 (comb -: combt) 5
> 1
>
>    100 st&> ' 2 comb  5' ; ' 2 combt  5'
> ┌───────────┬─────┬──────────┬────────┐
> │ 2 comb  5 │12032│6.24855e_5│0.751825│
> ├───────────┼─────┼──────────┼────────┤
> │ 2 combt  5│9088 │9.51077e_5│0.864338│
> └───────────┴─────┴──────────┴────────┘
>
>    11 (comb -: combt) 17
> 1
>    100 st&> ' 11 comb 17' ; ' 11 combt  17'
> ┌─────────────┬───────┬──────────┬───────┐
> │ 11 comb 17  │5032064│0.0107722 │54206.5│
> ├─────────────┼───────┼──────────┼───────┤
> │ 11 combt  17│4134144│0.00735863│30421.6│
> └─────────────┴───────┴──────────┴───────┘
>
>
>    ". noun define -. CRLF
>
> cmbcombt=.
>
> (0&({::) {~ /:"1@:(3&({::)))@:(<@:(;@:(,/@:([ ,"1"1 _1 ] {"1"_ 1 [
> -.~"1 i.@(+&({:@$)))L:0/)@:(2&({::))) 3} ])@:(<@:(|.@:(] <@(;@:(4
> &({::))@:((<@:((3&({::) ([ ,.&.> ,&.>/\.@:(>:&.>@:])) 4&({::))@:])
> 4} ])^:(0&({::)))@:(<@:((<i.1 0) ,~ (<i.0 0) $~ 2&({::)) 4} ])@:(
> <@:(i.@:>:@:(2&({::))) 3} ])@:(<@:(1&({::) - 0&({::)) 2} ])@:('. .
> .'&(] , ;:@:[))@:(,&:>/@:(<^:(L. = 0:)&.>))@:(,&<))"0 +/\)@:(1&({
> ::))) 2} ])@:(<@:(|.@:(#/.~)@:(0&({::))) 1} ])@:('. . .'&(] , ;:@:
> [)@:<)
>
>
> )
>
>
>
>    (cmbcomb -:cmbcombt) 2#>:i.5
> 1
>    10 st&> 'cmbcomb 2#>:i.5' ; 'cmbcombt 2#>:i.5'
> ┌────────────────┬────────┬────────┬─────────┐
> │cmbcomb 2#>:i.5 │50340352│0.139288│7.0118e6 │
> ├────────────────┼────────┼────────┼─────────┤
> │cmbcombt 2#>:i.5│50339072│0.157125│7.90951e6│
> └────────────────┴────────┴────────┴─────────┘
>
>    (cmbcomb -:cmbcombt) 2#>:i.6
> 1
>     1 st&> 'cmbcomb 2#>:i.6' ; 'cmbcombt 2#>:i.6'
> ┌────────────────┬──────────┬───────┬──────────┐
> │cmbcomb 2#>:i.6 │3221236224│10.6752│3.43873e10│
> ├────────────────┼──────────┼───────┼──────────┤
> │cmbcombt 2#>:i.6│3221234944│11.2508│3.62415e10│
> └────────────────┴──────────┴───────┴──────────┘
>
> The associated performances are similar.  I did not make any effort to
> simplify or to try to optimize the tacit verbs.  Each assignment in the
> original explicit constructions corresponds to a form (<@:v N} ]) in the
> tacit versions with the following mappings,
>
> comb: x y d k z -> 0 1 2 3 4
> cmbcomb:  y a b c -> 0 1 2 3
>
> Needless to say, combt is embedded in cmbcombt.
>
>
----------------------------------------------------------------------
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