This issue is definitely worth treatment in a lesson. And the problem is not that J cannot represent this aspect of PEMDAS. It's that doing so creates other problems.
For example: X=:2 :'m*n' 2 X 3 + 4 10 X/2 3 4 |syntax error And it's not that we cannot work around those other problems: 4 :'x X y'/2 3 4 24 ... instead, the underlying issue is that PEMDAS would complicate the rest of the system. Consider, for example: (i.3 4) +/ .* (i.4 2) 28 34 76 98 124 162 * table i. 10 *. table i. 2 X=:2 :'m +/ .* n' It's probably best to explain that * is a different operation than the multiplication operator which is frequently taught in schools (though it is closely related). You can implement the familiar operation using J, but there's a reason for its design and it's in the student's best interest to understand the distinctions. -- Raul On Fri, Feb 3, 2012 at 12:24 PM, 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 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Met vriendelijke groet, >>>>>>> @@i = Arie Groeneveld >>>>>>> >>>>>>> >>> ---------------------------------------------------------------------- >>>>>>> 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 >>>>>> >>>>>> ---------------------------------------------------------------------- >>>>>> 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 >>>>> >>>> >>>> >>>> >>>> -- >>>> Skip Cave >>>> Cave Consulting LLC >>>> Phone: 214-460-4861 >>>> ---------------------------------------------------------------------- >>>> 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 >> >> >> >> -- >> - michael dykman >> - mdyk...@gmail.com >> >> May the Source be with you. >> ---------------------------------------------------------------------- >> 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