Its the same.  Just more descriptive name than catalogue perhaps.  Google seems 
to only find J references to query "catalogue function permutations".  I feel 
as though catalogue and my use of it is a generalizable pattern, and the J 
designers agreed, but I don't know if other languages did something similar, 
and just used a different name?

Was catalogue in APL?


----- Original Message -----
From: David Lambert <[email protected]>
To: programming <[email protected]>
Cc: 
Sent: Thursday, May 8, 2014 4:50:40 PM
Subject: Re: [Jprogramming] a cool permutation verb

Indeed cool, does it differ from ,@{ :[:
> Date: Thu, 8 May 2014 10:53:53 -0700 (PDT)
> From: "'Pascal Jasmin' via Programming"<[email protected]>
> To: Programming forum<[email protected]>
> Subject: [Jprogramming] a cool permutation verb
> Message-ID:
>     <[email protected]>
> Content-Type: text/plain; charset=utf-8
>
> cperm =: [: , [: < "1 [: > [: ,"0 1/ each/ (_2&}. , [: ,"0 0/ each/ _2&{.)
>
> this creates constrained permutations where each position in the list can 
> only be drawn from its own set:
>
> ? ?cperm 3 4 ; 1 2
> ?????????????????
> ?3 1?3 2?4 1?4 2?
> ?????????????????
>
> ? ?cperm 0 ; 3 4 ; 1 2; 5
> ?????????????????????????????????
> ?0 3 1 5?0 3 2 5?0 4 1 5?0 4 2 5?
> ?????????????????????????????????
>
> ? ?cperm 8 9 ;0 ; 3 4 ; 1 2; 5
> ?????????????????????????????????????????????????????????????????????????????????
> ?8 0 3 1 5?8 0 3 2 5?8 0 4 1 5?8 0 4 2 5?9 0 3 1 5?9 0 3 2 5?9 0 4 1 5?9 0 4 
> 2 5?
> ?????????????????????????????????????????????????????????????????????????????????
>
> The rightmost part (_2&}. , [: ,"0 0/ each/ _2&{.) of the verb is just there 
> to deal with edge cases of joining the last 2 boxes.
>
> The core is: ?(,"0 1/ each/)
>
> I thought it was pretty cool to use / twice.
>
> This was useful in solving this problem in sufficiently elegant fashion:
>
> http://www.reddit.com/r/dailyprogrammer/comments/24ypno/572014_challenge_161_medium_appointing_workers/
>
> often the constrained permutation list has overlapping allowable values in 
> each slot, and in the above resource allocation problem, those happen to 
> indicate the invalid permutations, and are fairly easily eliminated with ~.
>
> It could also be used ( a bit of a stretch) for games where the first few 
> moves have been played and are known, but you wish to know the permutations 
> for a select number of future moves.

----------------------------------------------------------------------
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