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
