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
