[Jprogramming] Sets
Raul Miller
rauldmiller at gmail.com
Fri Nov 15 03:03:55 UTC 2013
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 <km at math.uh.edu> 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 <rauldmiller at gmail.com> 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 <km at math.uh.edu> 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
More information about the Programming
mailing list