that is definitely awesome code!
On Friday, September 13, 2013, Roger Hui wrote:
> Much of the code in the previous J programs/expressions has to do with
> transforming between representations. The following is a fairer comparison
> between the WL program and an equivalent J program.
>
> Society is table of pairs, each pair an integer representing a person's
> name and another representing a person in the first person's social
> network. Thus:
>
> p=: _2 ]\ 1 5 1 7 4 1 4 2 5 2 5 7 6 2 7 8 8 5
> p
> 1 5
> 1 7
> 4 1
> 4 2
> 5 2
> 5 7
> 6 2
> 7 8
> 8 5
>
> To modify p so that anyone in another's network includes that person in
> their network:
>
> p , |."1 p
> 1 5
> 1 7
> 4 1
> 4 2
> 5 2
> 5 7
> 6 2
> 7 8
> 8 5
> 5 1
> 7 1
> 1 4
> 2 4
> 2 5
> 7 5
> 2 6
> 8 7
> 5 8
>
> If you want it sorted:
>
> /:~ p , |."1 p
> 1 4
> 1 5
> 1 7
> 2 4
> 2 5
> 2 6
> 4 1
> 4 2
> 5 1
> 5 2
> 5 7
> 5 8
> 6 2
> 7 1
> 7 5
> 7 8
> 8 5
> 8 7
>
> Therefore:
>
> WL:
>
> symSoc = society /.
> {a_Integer, b_} :> {a, Union[b, Cases[society, {x_, {___, a, ___}} :> x]]}
>
>
> J:
>
> p,|."1 p
> /:~p,|."1 p
>
>
>
>
>
>
>
>
> On Thu, Sep 12, 2013 at 9:51 PM, Roger Hui
> <[email protected]<javascript:;>
> >wrote:
>
> > 0. Do you care to explain how this WL program works?
> >
> > symSoc = society /.
> > {a_Integer, b_} :> {a, Union[b, Cases[society, {x_, {___, a, ___}} :>
> x]]}
> >
> > 1. How well does it perform if "society" has 10 million members?
> >
> >
> >
> >
> > On Thu, Sep 12, 2013 at 9:37 PM, Richard Gaylord <[email protected]
> >wrote:
> >
> >> roger:
> >>
> >> thanks very much for your response. the code in my lecture notes does
> >> include the case where each person is a member of his network.
> >>
> >> when i look at your code , i realize that i would be best to keep using
> >> the
> >> Wolfram language (WL) rather than learn to master J as you have (of
> course
> >> that's understandable since you created J ). i am too set in my
> >> programming
> >> ways to learn a new language at this point unless it offers me
> something
> >> very substantially better than WL.
> >>
> >> also, i happen to truly love WL and have been a WL evangelist for 25
> >> years,
> >> using it in my four books and teaching WL with great pleasure to over a
> >> thousand students at university in a variety of fields (physics,
> >> chemistry,
> >> biology, sociology and economics/business) and in industry and
> government,
> >> how WL works in 6.5 hrs. of lecture (sometimes given in four 90 minute
> >> classroom increments and sometimes in one day-long lecture).
> >>
> >> you know, i first learned WL
> >>
> >> - which has been unfortunately been called Mathematica which is the
> >> software that is built upon WL because stephen wolfram took 25 years
> >> before
> >> announcing this spring the imminent release of WL as a stand-alone app
> to
> >> run on computers and mobile devices (as J already does) -
> >>
> >> by reading "Life; Nasty, Brutish and Short" and thereby learning array
> >> processing. and implementing it in WL while also incorporating anonymous
> >> functions (J was not yet created) and nested function calls and
> >> eventually
> >> rules and pattern matching. To this day, i consider consider myself an
> >> APL'er by nature who delights in the creation of unreadable one-liner
> code
> >> LOL. but i do it in WL which is far easier for me to read and work with
> >> (and i actually first became aware of APL through stephen's Mathematica
> >> book).
> >>
> >> i also recall returning to the US from an APL meeting in Toronto (where
> i
> >> gave a tutorial on WL) sitting next to Arthur Whitney on the plane,
> >> running side-by-side comparisons of the speed of my writing and running
> >> pieces of code in WL with Arthur's doing the same with his just created
> K
> >> language on our respective MacBooks.
> >>
> >> As a scientist (i'm a theoretical condensed soft matter physicist), i
> have
> >> available a community of well over a million users of Mathematica to
> teach
> >> WL to and to learn from and that's too great resource for me to not use
> >> (if
> >> i could get them each to buy at least one of my books, i'd be
> financially
> >> set LOL).
> >>
> >> so i guess i'll continue to use WL and to wear my custom-made black WL
> >> icon
> >> logo T-shirt.
> >>
> >> richard
> >>
> >>
> >> On Thu, Sep 12, 2013 at 7:53 PM, Roger Hui <[email protected]
> >> >wrote:
> >>
> >> > If we modify the input slightly, by requiring that each person is a
> >> member
> >> > of his own network (i.e. the reflexive closure), then the computation
> >> can
> >> > be more concise:
> >> >
> >> > c=: 0;1 5 7;2 ;3;4 1 2;5 2 7;6 2;7 8;8 5
> >> > c
> >> > ┌─┬─────┬─┬─┬─────┬─────┬───┬───┬───┐
> >> > │0│1 5 7│2│3│4 1 2│5 2 7│6 2│7 8│8 5│
> >> > └─┴─────┴─┴─┴─────┴─────┴───┴───┴───┘
> >> > <@~././ |: (,|."1) (I.#&>c),.;c
> >> > ┌─┬───────┬───────┬─┬─────┬─────────┬───┬───────┬─────┐
> >> > │0│1 5 7 4│2 4 5 6│3│4 1 2│5 2 7 1 8│6 2│7 8 1 5│8 5 7│
> >> > └─┴───────┴───────┴─┴─────┴─────────┴───┴───────┴─────┘
> >> >
> >> >
> >> >
> >> >
>
--
*"Those who would sacrifice freedom for security deserve neither." -
Benjamin Franklin*
*"I think that the very notion that equations are a good approach to
describing the natural world is a little bizarre."
- Stephen Wolfram*
*
*
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm