This is excellent. You need to insert a sort:
psa =: (<@#~ 2 #:@i.@^ #)&.> NB. Alford's ps
psa set 'A';'B';'C'
+----------------------------------------+
|++---+---+-----+---+-----+-----+-------+|
|||+-+|+-+|+-+-+|+-+|+-+-+|+-+-+|+-+-+-+||
||||C|||B|||B|C|||A|||A|C|||A|B|||A|B|C|||
|||+-+|+-+|+-+-+|+-+|+-+-+|+-+-+|+-+-+-+||
|++---+---+-----+---+-----+-----+-------+|
+----------------------------------------+
ps set 'A';'B';'C' NB. Do you see the sort I mean?
+----------------------------------------+
|++---+-----+-------+-----+---+-----+---+|
|||+-+|+-+-+|+-+-+-+|+-+-+|+-+|+-+-+|+-+||
||||A|||A|B|||A|B|C|||A|C|||B|||B|C|||C|||
|||+-+|+-+-+|+-+-+-+|+-+-+|+-+|+-+-+|+-+||
|++---+-----+-------+-----+---+-----+---+|
+----------------------------------------+
--Kip
Sent from my iPad
> On Nov 15, 2013, at 12:21 AM, "Linda Alvord" <[email protected]> wrote:
>
> f=: 13 :'<"0 <"1 |:((>:i.#y)*/"0 |:((#y)#2)#:i.2^#y){'' '',y'
> f 'ABC'
> ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
> │┌───┐│┌───┐│┌───┐│┌───┐│┌───┐│┌───┐│┌───┐│┌───┐│
> ││ │││ C│││ B │││ BC│││A │││A C│││AB │││ABC││
> │└───┘│└───┘│└───┘│└───┘│└───┘│└───┘│└───┘│└───┘│
> └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
>
> I think this has a prettier empty set!
>
> set =: [: < [: /:~ ~.
> set 'A';'B';'C'
> ┌───────┐
> │┌─┬─┬─┐│
> ││A│B│C││
> │└─┴─┴─┘│
> └───────┘
> ps=: (<@#~ 2 #:@i.@^ #)&.>
> ps set 'A';'B';'C'
> ┌────────────────────────────────────────┐
> │┌┬───┬───┬─────┬───┬─────┬─────┬───────┐│
> │││┌─┐│┌─┐│┌─┬─┐│┌─┐│┌─┬─┐│┌─┬─┐│┌─┬─┬─┐││
> ││││C│││B│││B│C│││A│││A│C│││A│B│││A│B│C│││
> │││└─┘│└─┘│└─┴─┘│└─┘│└─┴─┘│└─┴─┘│└─┴─┴─┘││
> │└┴───┴───┴─────┴───┴─────┴─────┴───────┘│
> └────────────────────────────────────────┘
>
>
>
>
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of km
> Sent: Friday, November 15, 2013 12:48 AM
> To: [email protected]
> Subject: Re: [Jprogramming] Sets
>
> You have the right idea but are not using my definition of set. Compare
>
> set 'A';'B';'C' NB. My version of your 'ABC'
> +-------+
> |+-+-+-+|
> ||A|B|C||
> |+-+-+-+|
> +-------+
> ps set 'A';'B';'C' NB. my version of your f 'ABC'
> +----------------------------------------+
> |++---+-----+-------+-----+---+-----+---+|
> |||+-+|+-+-+|+-+-+-+|+-+-+|+-+|+-+-+|+-+||
> ||||A|||A|B|||A|B|C|||A|C|||B|||B|C|||C|||
> |||+-+|+-+-+|+-+-+-+|+-+-+|+-+|+-+-+|+-+||
> |++---+-----+-------+-----+---+-----+---+|
> +----------------------------------------+
>
> --Kip
>
> Sent from my iPad
>
>> On Nov 14, 2013, at 6:54 PM, "Linda Alvord" <[email protected]> wrote:
>>
>> f=: 13 :' <"1 |:((>:i.#y)*/"0 |:((#y)#2)#:i.2^#y){'' '',y'
>> f 'ABC'
>> ----T---T---T---T---T---T---T---┐
>> │ │ C│ B │ BC│A │A C│AB │ABC│
>> L---+---+---+---+---+---+---+----
>>
>> This is a set of the subsets? I haven't looked at your example yet.
>>
>> Linda
>>
>>
>> -----Original Message-----
>> From: [email protected]
>> [mailto:[email protected]] On Behalf Of km
>> Sent: Thursday, November 14, 2013 3:18 PM
>> 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
> ----------------------------------------------------------------------
> 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