Powerset is given by ;@(<@(<\.)\S:1) ;@(<@(<\.)\S:1) set 'b';'a';4;3;'a' +---+-----+---+-------+-----+---+---------+-------+-----+---+ |+-+|+-+-+|+-+|+-+-+-+|+-+-+|+-+|+-+-+-+-+|+-+-+-+|+-+-+|+-+| ||3|||3|4|||4|||3|4|a|||4|a|||a|||3|4|a|b|||4|a|b|||a|b|||b|| |+-+|+-+-+|+-+|+-+-+-+|+-+-+|+-+|+-+-+-+-+|+-+-+-+|+-+-+|+-+| +---+-----+---+-------+-----+---+---------+-------+-----+---+
R.E. Boss (Add your info to http://www.jsoftware.com/jwiki/Community/Demographics ) > -----Original Message----- > From: [email protected] [mailto:programming- > [email protected]] On Behalf Of km > Sent: donderdag 14 november 2013 21:18 > To: [email protected] > Subject: [Jprogramming] Sets > > 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
