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