You can point out that when there are 100 functions a hierarchy like that is unwieldy. See also Ken's paper from 1966, *Conventions governing order of evaluation* <http://www.jsoftware.com/papers/EvalOrder.htm>.
<http://www.jsoftware.com/papers/EvalOrder.htm> On Fri, Feb 3, 2012 at 9:24 AM, km <k...@math.uh.edu> wrote: > A big problem for college freshmen is that calculators tell them 2*3+4 is > 10 and J tells them 14. With apologies to "South Pacific": they have been > carefully taught PEMDAS. > > Sent from my iPad > > > On Feb 3, 2012, at 10:44 AM, Michael Dykman <mdyk...@gmail.com> wrote: > > > This may sound trite, but > > > > Who is the audience? Everyone who does math, be it for engineering, > > finance, or middle-school algebra. Interactive J should be > > approachable for a 10 year-old and would be a huge improvement over > > the calculators and spreadsheets in current use. > > > > What do they already know about J? Nothing or less. While I am > > occasionally surprised by the extent that J is used among very senior > > financial types, it is a fact that J remains deep in obscurity within > > the IT industry. I can't imagine that the picture is any clearer among > > educators. > > > > What the want to know is how to do basic math with the console. What > > they need is enough of a foundation to begin exploring complex > > relationships. > > > > I agree, Khan Academy provides an excellent model. If we (as a > > community) were ever fortunate enough to have Khan produce some > > introductory materials, usage would explode. > > > > Having said that, shouldn't this thread be migrated to Chat? > > > > - michael dykman > > > > On Fri, Feb 3, 2012 at 11:02 AM, Dan Bron <j...@bron.us> wrote: > >> Hmm. I could do a basic intro to J course at one of the NYC JUGs. If > we > >> broadcast & record it, we could then post it on youtube. > >> > >> The question is: who is the audience? What do they already know about > J? > >> What do they want to know? > >> > >> -Dan > >> > >> -----Original Message----- > >> From: programming-boun...@jsoftware.com > >> [mailto:programming-boun...@jsoftware.com] On Behalf Of William > Tanksley, Jr > >> Sent: Friday, February 03, 2012 10:43 AM > >> To: Programming forum > >> Subject: Re: [Jprogramming] Demise of @ and [: debate > >> > >> I'd love to see a youtube class on J. I'd download every episode as it > >> aired to my phone and watch it on the train, using my computer to do > >> experiments and take notes. That's what I do with "njwilberger" > >> rational trig and hyperbolic geometry lessons. > >> > >> -Wm > >> > >> On Fri, Feb 3, 2012 at 6:57 AM, Skip Cave <s...@caveconsulting.com> > wrote: > >>> A methodical approach to teaching J might be to group the primitives > into > >>> groups of similar functionality. Order these groups by complexity > (simple > >>> to complex), as well as perhaps ranking them by familiarity with > >>> already-learned concepts from traditional math classes, most familiar > >>> first. > >>> > >>> With a learning sequence defined, spend a class on each group of > >>> primitives, starting with the simplest and most familiar functions > (+-*%, > >>> or perhaps = =. =:), and progress to the most complex and unfamiliar > >>> functions.You should probably start with direct execution, and > introduce > >>> verb creation after a few classes on basic primitives. Some class time > >>> should be spent on how to read and understand the vocabulary > definitions. > >>> > >>> Homework for each class would focus on usage of that current classes' > >>> primitives, with previously-covered primitives thrown in for good > measure. > >>> The homework problems should be constructed to not require primitives > that > >>> haven't been covered yet (though nothing would prevent an advanced > student > >>> from looking ahead and trying them). > >>> > >>> It would be interesting to create an online J class, much like the Khan > >>> Academy on youtube. In fact, if you really wanted to introduce J to the > >>> masses, create a math tutorial that follows and supports Khan's math > >>> tutorials, using J as the tool. This would be similar to Iverson's > >>> "Concrete Math Companion" which follows 'Concrete Mathematics' (Graham, > >>> Knuth, and Patashnik (GKP)). > >>> > >>> Just a thought.. > >>> > >>> Skip > >>> > >>> > >>> On Fri, Feb 3, 2012 at 2:27 AM, Linda Alvord > >> <lindaalv...@verizon.net>wrote: > >>> > >>>> I agree, Don. I really was using a post from Roger because I find his > the > >>>> most difficult to untangle. This thread was a good one to explain my > new > >>>> thoughts about @ and [: > >>>> > >>>> My challenges are topics I might use to teach high school seniors > >> studying > >>>> precalculus, probability and statistics. They are similar to old APL > >>>> contests I invented while I was teaching APL - to get better with the > >>>> language myself. However, I'm not sure what would work in classes > these > >>>> days. > >>>> > >>>> At least I'm having fun with the readers of the forum. J is even > becoming > >>>> fun to use! > >>>> > >>>> Linda > >>>> > >>>> -----Original Message----- > >>>> From: programming-boun...@jsoftware.com > >>>> [mailto:programming-boun...@jsoftware.com] On Behalf Of Don Guinn > >>>> Sent: Friday, February 03, 2012 12:04 AM > >>>> To: Programming forum > >>>> Subject: Re: [Jprogramming] Understanding C. , A. > >>>> > >>>> Might want to get beginners a little comfortable with J before showing > >> them > >>>> C. and A. > >>>> > >>>> On Thu, Feb 2, 2012 at 7:56 PM, Linda Alvord <lindaalv...@verizon.net > >>>>> wrote: > >>>> > >>>>> I am rethinking my concern with @ and [: and am leaning toward > >> using > >>>>> explicit definitions as a way of teaching J to beginners as a > natural > >>>>> mathematical language. > >>>>> > >>>>> Some of the programmers responding to the forum think in idioms and > use > >>>> @ > >>>>> happily. > >>>>> > >>>>> f > >>>>> <:@-@[ C.&.|. ] > >>>>> i > >>>>> -@#@[ |. C. > >>>>> k > >>>>> <@i.@-@>:@[ C. ] > >>>>> > >>>>> 0thers favor the tacit approach with lots of [: > >>>>> > >>>>> g > >>>>> ] C.&.|.~ [: <: [: - [ > >>>>> h > >>>>> [: |. ([: <: [: - [) C. [: |. ] > >>>>> j > >>>>> C. |.~ [: - [: # [ > >>>>> > >>>>> > >>>>> Both styles are appropriate and I should not suggest one way or the > >>>> other. > >>>>> Many of you have suggested this. > >>>>> > >>>>> > >>>>> We are looking for a simple way to introduce J to beginners. In my > >>>>> opinion > >>>>> we would introduce J as a mathematical language for solving problem. > >>>>> > >>>>> > >>>>> I am suggest starting with expressions that produce desired results. > >>>>> Developing from right to left may come naturally. > >>>>> > >>>>> (<:-3 6)C.&.|.'abc*ef*g' > >>>>> **abcefg > >>>>> > >>>>> The next step is making explicit functions indicating if the intended > >> use > >>>>> is > >>>>> monadic or dyadic. There is no use of @ or [: allowed at this > point. > >>>>> > >>>>> g=: 13 :'(<:-x)C.&.|.y' > >>>>> h=: 13 :'|.(<:-x)C.|.y' > >>>>> j=: 13 :'(-#x)|.x C.y' > >>>>> > >>>>> Now exploring the tacit definitions would be appropriate in some > >>>>> environments and can be explored an studied in terms of forks and > >> hooks. > >>>>> At this special code and common idioms can be explored and timing of > >>>>> expressions can be compared. In the end all roads lead to Rome. > >>>>> > >>>>> 3 6 f 'abc*ef*g' > >>>>> **abcefg > >>>>> 3 6 g 'abc*ef*g' > >>>>> **abcefg > >>>>> 3 6 h 'abc*ef*g't > >>>>> **abcefg > >>>>> 3 6 i 'abc*ef*g' > >>>>> **abcefg > >>>>> 3 6 j 'abc*ef*g' > >>>>> **abcefg > >>>>> > >>>>> > >>>>> -----Original Message----- > >>>>> From: programming-boun...@jsoftware.com > >>>>> [mailto:programming-boun...@jsoftware.com] On Behalf Of Linda Alvord > >>>>> Sent: Wednesday, February 01, 2012 6:01 PM > >>>>> To: 'Programming forum' > >>>>> Subject: Re: [Jprogramming] Understanding C. , A. > >>>>> > >>>>> Sorry I missed the version by Arie. Nice! > >>>>> > >>>>> 3 6 (i=:-@#@[ |. C.) 'abc*ef*g' > >>>>> **abcefg > >>>>> i > >>>>> -@#@[ |. C. > >>>>> > >>>>> j=: 13 :'(-#x)|.x C.y' > >>>>> j > >>>>> C. |.~ [: - [: # [ > >>>>> > >>>>> 3 6 j 'abc*ef*g' > >>>>> **abcefg > >>>>> > >>>>> Please let me know if you have concerns or modifications as I plan to > >> use > >>>>> different rules beginning with challenge 6. > >>>>> > >>>>> Henceforth I'll have no opinion concerning the merits of @ and [: > I > >>>>> hope > >>>>> to learn to favor them both gracefully. > >>>>> > >>>>> Linda > >>>>> > >>>>> -----Original Message----- > >>>>> From: programming-boun...@jsoftware.com > >>>>> [mailto:programming-boun...@jsoftware.com] On Behalf Of Linda Alvord > >>>>> Sent: Wednesday, February 01, 2012 5:20 PM > >>>>> To: 'Programming forum' > >>>>> Subject: Re: [Jprogramming] Understanding C. , A. > >>>>> > >>>>> I'm happiest with the explicit version. It shows the arguments needed > >> for > >>>>> the application. > >>>>> > >>>>> 3 6 (f=:<:@-@[ C.&.|. ]) 'abc*ef*g' > >>>>> **abcefg > >>>>> 3 6 f a=:'abc*ef*g' > >>>>> **abcefg > >>>>> > >>>>> g=: 13 :'(<:-x)C.&.|.y'! > >>>>> 3 6 g a > >>>>> **abcefg > >>>>> > >>>>> f > >>>>> <:@-@[ C.&.|. ] > >>>>> g > >>>>> ] C.&.|.~ [: <: [: - [ > >>>>> g=: 13 :'(<:-x)C.&.|.y' > >>>>> > >>>>> J provides the ~ which shows up in the tacit version above. > >>>>> > >>>>> Then there is h with no ~ and no &. > >>>>> > >>>>> h=: 13 :'|.(<:-x)C.|.y' > >>>>> h > >>>>> [: |. ([: <: [: - [) C. [: |. ] > >>>>> 3 6 h a > >>>>> **abcefg > >>>>> > >>>>> Linda > >>>>> > >>>>> > >>>>> -----Original Message----- > >>>>> From: programming-boun...@jsoftware.com > >>>>> [mailto:programming-boun...@jsoftware.com] On Behalf Of Roger Hui > >>>>> Sent: Wednesday, February 01, 2012 11:26 AM > >>>>> To: Programming forum > >>>>> Subject: Re: [Jprogramming] Understanding C. , A. > >>>>> > >>>>> Personally, I dislike expressions with multiple uses of ~ as they > make > >> my > >>>>> head spin. > >>>>> > >>>>> 3 6 (C.&.|.~ <:@-)~ 'abc*ef*g' > >>>>> **abcefg > >>>>> 3 6 (<:@-@[ C.&.|. ]) 'abc*ef*g' > >>>>> **abcefg > >>>>> > >>>>> I much prefer the second over the first. > >>>>> > >>>>> > >>>>> > >>>>> On Wed, Feb 1, 2012 at 8:05 AM, Aai <agroeneveld...@gmail.com> > wrote: > >>>>> > >>>>>> Ah, I see that's a bit like yours David. > >>>>>> > >>>>>> Modifying it for 1< #x > >>>>>> > >>>>>> 3 6 (C. |.~ -@#@[) 'abc*ef*g' > >>>>>> **abcefg > >>>>>> > >>>>>> > >>>>>> (from Essays) > >>>>>> > >>>>>> 3 6 (C.&.|.~ <:@-)~ 'abc*ef*g' > >>>>>> **abcefg > >>>>>> k > >>>>>> > >>>>>> > >>>>>> > >>>>>> On 01-02-12 16:47, Aai wrote: > >>>>>>> Sorry for the noise. You should forget the previous ones I sent: > >> they > >>>>>>> are wrong. > >>>>>>> > >>>>>>> It looks like this one is ok: > >>>>>>> > >>>>>>> mtf=:_1&|.@C. > >>>>>>> > >>>>>>> ]samples=: '*abcef' |."0 1 ~-i.6 > >>>>>>> *abcef > >>>>>>> f*abce > >>>>>>> ef*abc > >>>>>>> cef*ab > >>>>>>> bcef*a > >>>>>>> abcef* > >>>>>>> > >>>>>>> > >>>>>>> ]res=: '*' ([,-.~) "1 samples > >>>>>>> *abcef > >>>>>>> *fabce > >>>>>>> *efabc > >>>>>>> *cefab > >>>>>>> *bcefa > >>>>>>> *abcef > >>>>>>> > >>>>>>> res -: mtf&>/"1 (;~I.@:('*'&=))"1 samples > >>>>>>> 1 > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm