These look like Gray codes.
On Nov 14, 2013 10:04 PM, "Raul Miller" <[email protected]> wrote: > > Easy enough to add. > > It's an interesting progression though: > > #:/:&> (<@#~ 2 #:@i.@^ #)&.> set 2;'b';1;'a' > 0 0 0 0 > 1 0 0 0 > 1 1 0 0 > 1 1 1 0 > 1 1 1 1 > 1 1 0 1 > 1 0 1 0 > 1 0 1 1 > 1 0 0 1 > 0 1 0 0 > 0 1 1 0 > 0 1 1 1 > 0 1 0 1 > 0 0 1 0 > 0 0 1 1 > 0 0 0 1 > > -- > Raul > > On Thu, Nov 14, 2013 at 6:06 PM, km <[email protected]> wrote: > > Cool; needs a sort. --Kip > > > > > > psr=: (<@#~ 2 #:@i.@^ #)&.> NB. Raul's > > psr set 0;1 > > +----------------+ > > |++---+---+-----+| > > |||+-+|+-+|+-+-+|| > > ||||1|||0|||0|1||| > > |||+-+|+-+|+-+-+|| > > |++---+---+-----+| > > +----------------+ > > ps set 0;1 NB. list inside box is sorted > > +----------------+ > > |++---+-----+---+| > > |||+-+|+-+-+|+-+|| > > ||||0|||0|1|||1||| > > |||+-+|+-+-+|+-+|| > > |++---+-----+---+| > > +----------------+ > > > > Sent from my iPad > > > >> On Nov 14, 2013, at 3:17 PM, Raul Miller <[email protected]> wrote: > >> > >> Derived from ps at http://rosettacode.org/wiki/Power_set#J > >> > >> ps=: (<@#~ 2 #:@i.@^ #)&.> > >> > >> -- > >> Raul > >> > >> > >>> On Thu, Nov 14, 2013 at 3:17 PM, km <[email protected]> wrote: > >>> Here is my latest attempt at sets in J. Would anyone care to write a verb ps (power set) such that ps y is the set of all subsets of set y? It's called the power set in part because when a set has n elements its power set has 2^n elements. --Kip Murray > >>> > >>> NB. A set is a box with a sorted list of boxes inside. > >>> NB. An element is the contents of a box in the list. > >>> NB. A -: B tests whether set A is set B. > >>> > >>> set =: [: < [: /:~ ~. NB. create set from list of boxes > >>> > >>> NB. The list may have duplicates but the set has none. > >>> > >>> EE =: <$0 NB. empty set, same as Ace a: > >>> > >>> eo =: <@[ e. >@] NB. test whether x is an element of y > >>> > >>> uu =: [: set ,&> NB. union > >>> > >>> mm =: [: < -.&> NB. minus > >>> > >>> sd =: mm uu mm~ NB. symmetric difference > >>> > >>> cp =: uu mm sd NB. common part (intersection) > >>> > >>> ss =: uu -: ] NB. test whether x is a subset of y > >>> > >>> (set 1;2;3;3) -: set 3;1;2 > >>> 1 > >>> > >>> ]A =: set 2;'b';1;'a' > >>> +---------+ > >>> |+-+-+-+-+| > >>> ||1|2|a|b|| > >>> |+-+-+-+-+| > >>> +---------+ > >>> > >>> ]B =: set 'b';'a';4;3;'a' > >>> +---------+ > >>> |+-+-+-+-+| > >>> ||3|4|a|b|| > >>> |+-+-+-+-+| > >>> +---------+ > >>> > >>> A uu B > >>> +-------------+ > >>> |+-+-+-+-+-+-+| > >>> ||1|2|3|4|a|b|| > >>> |+-+-+-+-+-+-+| > >>> +-------------+ > >>> > >>> A sd B > >>> +---------+ > >>> |+-+-+-+-+| > >>> ||1|2|3|4|| > >>> |+-+-+-+-+| > >>> +---------+ > >>> > >>> A cp B > >>> +-----+ > >>> |+-+-+| > >>> ||a|b|| > >>> |+-+-+| > >>> +-----+ > >>> > >>> NB. Below is the set of all subsets of set 0;1 > >>> > >>> set EE;(set <0);(set <1);<set 0;1 > >>> +------------------------+ > >>> |+--+-----+-------+-----+| > >>> ||++|+---+|+-----+|+---+|| > >>> ||||||+-+|||+-+-+|||+-+||| > >>> ||++|||0|||||0|1|||||1|||| > >>> || ||+-+|||+-+-+|||+-+||| > >>> || |+---+|+-----+|+---+|| > >>> |+--+-----+-------+-----+| > >>> +------------------------+ > >>> > >>> Sent from my iPad > >>> ---------------------------------------------------------------------- > >>> 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
