Catalog was invented in "Dictionary APL" and was called "all". http://www.jsoftware.com/papers/APLDictionary.htm It's what you need to index rectangular arrays using the more primitive notion of indexing a vector by an array of integers.
On Thu, May 8, 2014 at 2:34 PM, 'Pascal Jasmin' via Programming < [email protected]> wrote: > 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 > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
