I liked the reference which Roger Hui posted: http://www.jsoftware.com/papers/EvalOrder.htm which points out some of the ambiguities in PEMDAS.
-- Raul On Fri, Feb 3, 2012 at 1:55 PM, Devon McCormick <devon...@gmail.com> wrote: > You could also highlight the difference in complexity between the baroque - > http://en.cppreference.com/w/cpp/language/operator_precedence - and the > simple - "right to left". > > On Fri, Feb 3, 2012 at 1:19 PM, Roger Hui <rogerhui.can...@gmail.com> wrote: > >> 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 >> > > > > -- > Devon McCormick, CFA > ^me^ at acm. > org is my > preferred e-mail > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm