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