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
