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

Reply via email to