I'll try to respond below in ALL CAPS.  --Kip

Sent from my iPad

> On Nov 16, 2013, at 2:42 AM, "R.E. Boss" <[email protected]> wrote:
> 
> Some remarks.
> 1. A set is not required to be sorted, so I would propose  (set=:  <@~. ) .
      SORTING DISCUSSED IN CHAT WITH GREG HEIL
> 2. Why not (Empty=: a:) ?
       WANTED TO SHOW Empty IS A NORMAL SET ACCORDING TO "BOX
       ENCLOSING A SORTED LIST OF BOXES".  IT IS ODD TO CALL THE
       EMPTY LIST '' A SORTED LIST OF BOXES, BUT MATHEMATICIANS ARE
       HAPPY TO TALK ABOUT AN EMPTY LIST OF CABBAGES WHETHER IT
       MAKES SENSE OR NOT, WHY NOT AN EMPTY SORTED LIST ... !
> 3. sf=: >@{S:1        NB. retrieve element from  COOL! COOL!
> 4. eo=: e.S:0        NB. Is element of  INSTEAD,  [: +./ e.S:0
> 5. un=: set@;        NB. Union; also for a list of sets
       INSTEAD,  set@(,&>)  USING MY SETS -- STOPPED CHECKING HERE
> 6. your mn can be shorter: (mn=:  -.&.>) or nicer (mn=: -.L:1)    NB. minus
> 7. nt=: [ mn mn        NB. Intersection; or
>    nt=: mn/        NB. Intersection for a list of sets
> 9. dv=: ,.L:1        NB. Display vertically
> 10. eq=: mn -: mn~    NB. Equality; important since sets are not sorted
> 
> 
> R.E. Boss
> 
> (Add your info to http://www.jsoftware.com/jwiki/Community/Demographics )
> 
>> -----Original Message-----
>> From: [email protected] [mailto:programming-
>> [email protected]] On Behalf Of km
>> Sent: zaterdag 16 november 2013 8:13
>> To: [email protected]
>> Subject: [Jprogramming] Sets
>> 
>> The following script for doing sets in J is a big improvement over what I
>> proposed several years ago.  You can save it and then do a loadd.  I would
> like
>> to make it a J Wiki page, but it will take a while to relearn how to do
> that.
>> Near the end is my verb ps for creating power sets and another cp for
>> creating the Cartesian product of two sets.  --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 sorted list.
>> NB. A -: B tests whether set A is set B.
>> 
>> set =: [: < [: /:~ ~.  NB. create set from a box or list of boxes
>> 
>> isset =: -: [: set >  NB. test whether y is a set
>> 
>> 
>> set 'a';i.2 2  NB. elements are 'a' and i. 2 2
>> 
>> set <'a'  NB. sole element is 'a'
>> 
>> ]Empty =: set ''  NB. the empty set, same as Ace a:
>> 
>> isset Empty
>> 
>> 
>> sf =: [: > ({ >)  NB. From { for sets: retrieve xth element of y, a set
>> 
>> sn =: ([: # >) : ([: < (# >))  NB. Number # for sets
>> 
>> eo =: <@[ e. >@]  NB. test whether x is an element of y
>> 
>> un =: [: set ,&>  NB. union of x and y
>> 
>> mn =: [: < -.&> NB. "minus" -- create set with the elements of x that are
> not
>> in y
>> 
>> sd =: mn un mn~  NB. symmetric difference
>> 
>> nt =: un mn sd  NB. intersection
>> 
>> so =: un -: ]  NB. test whether x is a subset of y
>> 
>> cp =: [: set [: , ({@(,&<))&>  NB. Cartesian product, adapted from CP in
>> Vocabulary's "Catalog {"
>> 
>> ps =: [: set [: <"0 ([: #: [: i. 2 ^ #@>) <@#"1 >  NB. ps y is the power
> set of y
>> 
>> NB. ps y is the set whose elements are all the subsets of y .  There are
> 2^#>y
>> of them.
>> 
>> dv =: [: < [: ,. >  NB. dv y displays the set y vertically, useful for
> power sets!
>> 
>> 
>> (set 1;2;3;3) -: set 3;1;2  NB. On each side the elements are 1 and 2 and
> 3 .
>> 
>> ]A =: set 2;'b';1;'a'
>> 
>> ]B =: set 'b';'a';4;3;'a'
>> 
>> A un B
>> 
>> A sd B
>> 
>> A nt B
>> 
>> (set 1;2) cp set 'a';'b';'c'
>> 
>> ps set 0;1;2
>> 
>> 
>> 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

Reply via email to